diff --git "a/02\350\260\242/\347\254\224\350\256\260/9.27\350\247\246\345\217\221\345\231\250.md" "b/02\350\260\242/\347\254\224\350\256\260/9.27\350\247\246\345\217\221\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..b189d9278981fce6eb5576d9753546c190d99811 --- /dev/null +++ "b/02\350\260\242/\347\254\224\350\256\260/9.27\350\247\246\345\217\221\345\231\250.md" @@ -0,0 +1,32 @@ +after触发器主要用于:insert,update,delete +创建触发器的语句 +触发器是在对表进行插入、更新或删除操作时自动执行的特殊存储过程。触发器通常用于强制业务规则,触发器是一种高级约束,可以定义比CHECK约束更为复杂的约束:可以执行复杂的SQL语句(if/while/case),可以引用其他表中的列。触发器定义在特定的表上,与表相关,自动触发执行,不能直接调用,是一个事务(可回滚)。 +SQL SERVER中触发器可以分为两类:DML触发器和DDL触发器,DML触发器针对表,DDL触发器会影响多种数据定义语言语句而触发,这些语句有create、alter、drop语句。 + +DML触发器分为: + +1、after触发器(之后触发) + +a、insert触发器 +b、update触发器 +c、delete触发器 +2、instead of触发器(之前触发) + +after触发器要求只有执行某一操作(insert、update、delete)之后触发器才能被触发,且只能定义在表上。而instead of触发器表示并不执行其定义的操作(insert、update、delete)而仅是执行触发器本身,其优先级高于触发语句的执行。 + +触发器有两个特殊的表:插入表(instered表)和删除表(deleted表 +```sql +CREATE TRIGGER <触发器名称> + +ON table_name + +[WITH ENCRYPTION] + +FOR [DELETE, INSERT, UPDATE] + +AS + + T-SQL语句 + +GO +drop trigger \ No newline at end of file