HomeОбразованиеRelated VideosMore From: kudvenkat

DDL Triggers in sql server

209 ratings | 64729 views
ddl trigger example ddl trigger example in sql server ddl triggers can be used to In this video we will discuss DDL Triggers in sql server. In SQL Server there are 4 types of triggers 1. DML Triggers - Data Manipulation Language. Discussed in Parts 43 to 47 of SQL Server Tutorial. 2. DDL Triggers - Data Definition Language 3. CLR triggers - Common Language Runtime 4. Logon triggers What are DDL triggers DDL triggers fire in response to DDL events - CREATE, ALTER, and DROP (Table, Function, Index, Stored Procedure etc...). For the list of all DDL events please visit https://msdn.microsoft.com/en-us/library/bb522542.aspx Certain system stored procedures that perform DDL-like operations can also fire DDL triggers. Example - sp_rename system stored procedure What is the use of DDL triggers If you want to execute some code in response to a specific DDL event To prevent certain changes to your database schema Audit the changes that the users are making to the database structure Syntax for creating DDL trigger CREATE TRIGGER [Trigger_Name] ON [Scope (Server|Database)] FOR [EventType1, EventType2, EventType3, ...], AS BEGIN -- Trigger Body END DDL triggers scope : DDL triggers can be created in a specific database or at the server level. The following trigger will fire in response to CREATE_TABLE DDL event. Use SampleDB Go CREATE TRIGGER trMyFirstTrigger ON Database FOR CREATE_TABLE AS BEGIN Print 'New table created' END To check if the trigger has been created 1. In the Object Explorer window, expand the SampleDB database by clicking on the plus symbol. 2. Expand Programmability folder 3. Expand Database Triggers folder Please note : If you can't find the trigger that you just created, make sure to refresh the Database Triggers folder. When you execute the following code to create the table, the trigger will automatically fire and will print the message - New table created Create Table Test (Id int) The above trigger will be fired only for one DDL event CREATE_TABLE. If you want this trigger to be fired for multiple events, for example when you alter or drop a table, then separate the events using a comma as shown below. ALTER TRIGGER trMyFirstTrigger ON Database FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE AS BEGIN Print 'A table has just been created, modified or deleted' END Now if you create, alter or drop a table, the trigger will fire automatically and you will get the message - A table has just been created, modified or deleted. The 2 DDL triggers above execute some code in response to DDL events (CREATE_TABLE, ALTER_TABLE, DROP_TABLE). Now let us look at an example of how to prevent users from creating, altering or dropping tables. To do this modify the trigger as shown below. ALTER TRIGGER trMyFirstTrigger ON Database FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE AS BEGIN Rollback Print 'You cannot create, alter or drop a table' END To be able to create, alter or drop a table, you either have to disable or delete the trigger. To disable trigger 1. Right click on the trigger in object explorer and select "Disable" from the context menu 2. You can also disable the trigger using the following T-SQL command DISABLE TRIGGER trMyFirstTrigger ON DATABASE To enable trigger 1. Right click on the trigger in object explorer and select "Enable" from the context menu 2. You can also enable the trigger using the following T-SQL command ENABLE TRIGGER trMyFirstTrigger ON DATABASE To drop trigger 1. Right click on the trigger in object explorer and select "Delete" from the context menu 2. You can also drop the trigger using the following T-SQL command DROP TRIGGER trMyFirstTrigger ON DATABASE Certain system stored procedures that perform DDL-like operations can also fire DDL triggers. The following trigger will be fired when ever you rename a database object using sp_rename system stored procedure. CREATE TRIGGER trRenameTable ON DATABASE FOR RENAME AS BEGIN Print 'You just renamed something' END The following code changes the name of the TestTable to NewTestTable. When this code is executed, it will fire the trigger trRenameTable sp_rename 'TestTable', 'NewTestTable' The following code changes the name of the Id column in NewTestTable to NewId. When this code is executed, it will fire the trigger trRenameTable sp_rename 'NewTestTable.Id' , 'NewId', 'column' Text version of the video http://csharp-video-tutorials.blogspot.com/2015/09/ddl-triggers-in-sql-server.html Slides http://csharp-video-tutorials.blogspot.com/2015/09/ddl-triggers-in-sql-server_9.html All SQL Server Text Articles http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html All SQL Server Slides http://csharp-video-tutorials.blogspot.com/p/sql-server.html All Dot Net and SQL Server Tutorials in English https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd All Dot Net and SQL Server Tutorials in Arabic https://www.youtube.com/c/KudvenkatArabic/playlists
Html code for embedding videos on your blog
Text Comments (11)
Gamal Abdall (1 year ago)
This was the best useful tutorial on the whole Net.. Thank you so much for your great explanation, to be honest, all your tutorial was fantastic I do really appreciate the efforts making them.
playhere121 (2 years ago)
thanks
ITMaster (2 years ago)
good and very helpful
kudvenkat (2 years ago)
Thank you very much for taking time to give feedback. This means a lot. I am very glad you found the videos useful. I have organised all the Dot Net & SQL Server videos in to playlists, which could be useful to you https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd If you need DVDs or to download all the videos for offline viewing please visit http://www.pragimtech.com/order.aspx Slides and Text Version of the videos can be found on my blog http://csharp-video-tutorials.blogspot.com Tips to effectively use my youtube channel. https://www.youtube.com/watch?v=y780MwhY70s If you want to receive email alerts, when new videos are uploaded, please subscribe to my youtube channel. http://www.youtube.com/subscription_center?add_user=kudvenkat If you like these videos, please click on the THUMBS UP button below the video. May I ask you for a favor. I want these tutorials to be helpful for as many people as possible. Please share the link with your friends and family who you think would also benefit from them. Good Luck Venkat
Krzysztof S (2 years ago)
Venkat rules! Thank U for educating community. Your video tutorial is the best available. I watched 92 of your videos and everyone is great!
vivek dusad (2 years ago)
you r doing sql coding on which software???
Lucas Teixeira (2 years ago)
He is using SQL Server. You can get the lastest (2016) version at: https://www.microsoft.com/en-US/download/details.aspx?id=52679
Y Sudhakar (3 years ago)
sir, how many triggers can we create for table
Andrei Giubleanu (3 years ago)
venkat is the best
hassna hassna (3 years ago)
You are such an excellent tutor!!!! I want to ask you a favor. I am attending your C# Tutorial, MVC, ASP .I want to attend all the lists that you gave ,but I also want the slides that you explain from. Please upload them for us.Thanks My teacher
raqibul1000000 Alam (3 years ago)
Thanks a million.

Would you like to comment?

Join YouTube for a free account, or sign in if you are already a member.