Home >> FAQs/Tutorials >> SQL Server FAQ
SQL Server FAQ - Rolling Back the DDL Statement in a Trigger
(Continued from previous topic...)
Can You Roll Back the DDL Statement in a Trigger?
Can you roll back the DDL statement in a trigger? The answer is yes.
Since the DDL statement that fires the trigger and the statements defined inside
the trigger are all executed as a single statement batch, you can add a ROLLBACK
statement in the trigger to rollback the entire batch.
CREATE TRIGGER drop_rollback ON DATABASE
PRINT 'Drop table is not allowed!';
DROP TABLE fyi_users;
Drop table is not allowed!
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.
This trigger is powerful. It will stop you from dropping any tables in FyiCenterData database.
(Continued on next topic...)
- What Are Triggers?
- What Are the Basic Features of a Trigger?
- How To Create a Simple Table to Test Triggers?
- How To Create a DML Trigger using CREATE TRIGGER Statements?
- How To Test a DML Trigger?
- How To List All Triggers in the Database with sys.triggers?
- How To Modify Existing Triggers using "ALTER TRIGGER"?
- How To Delete Existing Triggers using "DROP TRIGGER"?
- How To Get the Definition of a Trigger Back?
- How To Disable Triggers using "DISABLE TRIGGER"?
- How To Create a Trigger for INSERT Only?
- How To See the Event List of an Existing Trigger using sys.trigger_events?
- How To Access the Inserted Record of an Event?
- How To Access the Deleted Record of an Event?
- How To Improve the Trigger to Handle NULL Values?
- What Happens to a Trigger with Multiple Affected Rows?
- How To Override DML Statements with Triggers?
- How To Create a DDL Trigger using "CREATE TRIGGER" Statements?
- Can You Roll Back the DDL Statement in a Trigger?
- Can You Create a Logon Trigger in SQL Server 2005 Express Edition?