Declare @dd int
Exec procedureName @dd output,’lyh’
六.SQL server触发器
什么是触发器:
触发器是在对表进行插入,更新或删除操作时自动执行的存储过程。
触发器的类别
INSERT触发器:当向表中插入数据时触发,自动执行触发器所定义的SQL语句。
UPDATE触发器:当更新表中某列、多列时触发,自动执行触发器所定义的SQL语句。
DELETE触发器:当删除表中记录时触发,自动执行触发器所定义的SQL语句。
Deleted表:用于存储DELETE和UPDATE语句所影响的行的副本,即在DELETED表中临时保存了被删除或被更新前的记录行。在执行DELETE或UPDATE语句 ,行从触发器表中删除,并传输到DELETED表中。由此我们可以从DELETED表中检查删除的数据行是否能删除。如果不能,就可以回滚撤销此操作,因为触发器本身就是一个特殊的事务单元。
Inserted表:用于存储INSERT和UPDATE语句所影响的行的副本,即在inserted表中临时保存了被插入或被更新后的记录行。在执行INSERT或UPDATE语句时,新加行被同时添加到INSERT表和触发器表中。由此我们可以从INSERTED检查插入数据是否满足业务需求。如果不满足,就可以向用户报告错误消息,并回滚撤销操作。
定义触发器
Create trigger trigger_name
On tablae_name www.2cto.com
[with encryption]
For(insert,update,delete)
As
SQL 语句
Go
Trigger_name:是触发器的名称。触发器名称必须符合标识符规则,并且在数据库中必须唯一,。可以选择是否指定触发器所有者名称。
Table_name:是在其上执行触发器的表或视图
With encryption:加密syscomments表中包含create trigger语句文本的条目。使用with encryption可防止将触发器作为SQLserver复制的部分发布.
Create trigger:必须是批处理中的第一条语句,并且只能应用到一个表中。
触发器只能在当前的数据库中创建,不过触发器可以引用当前数据库的外部对象。
作者 啊峰