sqlserver創建使用觸發器
发布时间:2020-12-12 13:33:36 所属栏目:MsSql教程 来源:网络整理
导读:一般地,创建触发器的语法如下:? Create Trigger触发器名称? On 表名|视图名??? --指定所创建的触发器与某个已存在的表或视图关联? For {Insert,Delete,Update}? --指定触发器的类型(即插入,删除,更新或它们的任意组合)? As ? SQL语句??? --指定触发器
一般地,创建触发器的语法如下:? Create Trigger触发器名称? On 表名|视图名??? --指定所创建的触发器与某个已存在的表或视图关联? For {Insert,Delete,Update}? --指定触发器的类型(即插入,删除,更新或它们的任意组合)? As ? SQL语句??? --指定触发器的动作 工作原理 ?? 对于每个触发器,SQL Server都会自动创建2个临时工作表,即inserted表和deleted表,这2个表作为系统的专用表存放于内存中,其结构与被作用的表相同,且在触发行为结束后自动被删除。 下面分别说明inserted和deleted这二个工作表与客户端发出的Insert,Delete或Update请求的关系。 请求?????? 工作表名称?????????? 工作表内容 Insert???? Inserted???????????? 被插入的行 ?????????? Deleted?????????????? / Delete???? Inserted???????????? / ?????????? Deleted????????????? 被删除的行 Update???? Inserted???????????? 被插入的行 ?????????? Deleted????????????? 被删除的行 IF EXISTS (SELECT name FROM sysobjects WHERE name = N'triUpdPartsQty' AND type = 'TR') DROP TRIGGER triUpdPartsQty GO CREATE TRIGGER triUpdPartsQty ON Part_s FOR UPDATE AS If UPDATE(PS_QTY) OR UPDATE(PS_AVAILABLE) BEGIN update Part_s set UPD_DATE= convert(nvarchar(8),getdate(),112) from Part_s ps inner join Inerted i on ps.P_NO=i.P_NO and ps.S_NO=i.S_NO END (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- SQLServer-----SQLServer 2008 R2备份、还原数据
- SQLServer2008-2012资源及性能监控—CPU使用率监
- SQLServer2005+MySql+Oracle三种数据库连接池的配
- SqlServer应用之sys.dm_os_waiting_tasks 引发的
- linux下mysql的root密码忘记的解决方法
- SQLServer触发器保持数据库完整性的实际应用
- sqlserver 2005 创建外键约束时注意
- MySQL中日期比较时遇到的编码问题解决办法
- SQLServer2005中的几个统计技巧 收藏 此文于2009
- Sql Server 分组统计并合计总数及WITH ROLLUP应用
热点阅读