Sometimes naming convention also impact the performance
problem in SQL SERVER. Whenever we creating the stored procedures we are giving
the name just like SP_Get_Customer. SP_
it first checks the Master Database system procedures. All the system
procedures stored in Master Database.
In this article we do not allow SP_ whenever stored procedure creating by using DDL Trigger.
--Create
Student Table
create table Student
(
id
int identity(1,1) ,
Name
varchar(100)
)
--Create
DDL Trigger on Database
create trigger
Restrict_Sp_NameConvenction
on database
for create_Procedure
as
begin
declare
@EventData XML = EVENTDATA(),@ObjectName Nvarchar(100);
select @ObjectName=@EventData.value('(/EVENT_INSTANCE/ObjectName[1]','NVARCHAR(100)');
if(substring(@ObjectName,1,3)='sp_')
begin
raiserror('Procedure name can not be start with sp_',16,1)
rollback;
end
end
--Create
Stored Procedure Name starts with sp_
create procedure sp_Get_Student
as
begin
select
* from Student
end
Msg 50000, Level 16, State
1, Procedure Restrict_Sp_NameConvenction, Line 10
Procedure name can not be
start with sp_
Msg 3609, Level 16, State 2,
Procedure sp_Get_Student, Line 1
The transaction ended in the
trigger. The batch has been aborted.
--Create
Stored Procedure Name does not starts with sp_
create procedure usp_Get_Student
as
begin
select
* from Student
end
--Command(s) completed successfully.
drop procedure sp_Get_Student
--
Disable trigger from Databse
disable trigger Restrict_Sp_NameConvenction
on database
--Enable
trigger from Databse
Enable trigger Restrict_Sp_NameConvenction
on database
--Drop
trigger from Databse
drop trigger Restrict_Sp_NameConvenction
on database
--For
more information about trigger event types
select * from sys.trigger_event_types
Comments
Post a Comment