sql实现触发器.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sql实现触发器

实现数据完整性之触发器 触发器是一种特殊的存储过程,它在执行语言事件执行时自动生效。SQL Server 包括两大类触发器:DML 触发器和 DDL 触发器。 DDL 触发器是 SQL Server 2005 的新增功能。当服务器或数据库中发生数据定义语言 (DDL) 事件时将调用这些触发器。 当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器。DML 事件包括在指定表或视图中修改数据的 INSERT 语句、UPDATE 语句或 DELETE 语句。 DML触发器 当执行INSERT, UPDATE或者DELETE语句修改指定表时执行 两类触发器: AFTER 触发器在执行 INSERT、UPDATE 或 DELETE 语句的操作之后执行。 INSTEAD OF触发器代替INSERT, UPDATE或DELETE 语句执行 触发器和初始化语句是一个事务的一部分 DML 触发器的主要优点在于它们可以包含使用 Transact-SQL 代码的复杂处理逻辑。 INSERT 触发器的工作方式 CREATE TRIGGER [insrtWorkOrder] ON [Production].[WorkOrder] AFTER INSERT AS BEGIN SET NOCOUNT ON; INSERT INTO [Production].[TransactionHistory]( [ProductID],[ReferenceOrderID],[TransactionType] ,[TransactionDate],[Quantity],[ActualCost]) SELECT inserted.[ProductID],inserted.[WorkOrderID] ,W,GETDATE(),inserted.[OrderQty],0 FROM inserted; End 执行INSERT语句 1 执行AFTER INSERT触发器语句 3 记录INSERT语句 2 CREATE TRIGGER [delCustomer] ON [Sales].[Customer] AFTER DELETE AS BEGIN SET NOCOUNT ON; EXEC master..xp_sendmail @recipients=NSalesManagers@Adventure-W, @message = NCustomers have been deleted!!; END; DELETE 触发器的工作方式 执行DELETE语句 执行AFTER DELETE 触发器语句 记录DELETE 语句 1 3 2 CREATE TRIGGER [updtProductReview] ON [Production].[ProductReview] AFTER UPDATE NOT FOR REPLICATION AS BEGIN UPDATE [Production].[ProductReview] SET [Production].[ProductReview].[ModifiedDate] = GETDATE() FROM inserted WHERE inserted.[ProductReviewID] = [Production].[ProductReview].[ProductReviewID]; END; UPDATE 触发器的工作方式 执行UPDATE 语句 执行AFTER UPDATE触发器语句 记录UPDATE 语句 1 3 2 临时表Inserted和Deleted DML 触发器语句使用两种特殊的表: 删除的表(Deleted)和插入的表(Inserted)。 SQL Server 2005 会自动创建和管理这两种表。 删除的表(Deleted)用于存储 DELETE 和 UPDATE 语句所影响的行的副本。在执行 DELETE 或 UPDATE 语句的过程中,行从触发器表中删除,并传输到删除的表中。删除的表和触发器表通常没有相同的行。 插入的表(Inserted)用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在插入或更新事务期间,新行将同时被添加到插入的表和触发器表。插入的表中的行是触发器表中的新行的副本。 更新事务类似于在删除操作之后执行插入操作;首先,旧行被复制到删除的表中,然后,新行被复制到触发器表和插入的表中。 CREATE TRIGGER [delEmployee] ON [HumanResources].[Em

您可能关注的文档

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档