SQL Server 2000中的触发器使用(五)
示例

  在本例中,创建了一个德国客户表和一个墨西哥客户表。放置在视图上的INSTEAD OF触发器将把更新操作重新定向到适当的基表上。这时发生的插入是对CustomersGer表的插入而不是对视图的插入。

  创建两个包含客户数据的表:

SELECT * INTO CustomersGer FROM Customers WHERE Customers.Country = 'Germany'
SELECT * INTO CustomersMex FROM Customers WHERE Customers.Country = 'Mexico'

GO

  在该数据上创建视图:

CREATE VIEW CustomersView AS
SELECT * FROM CustomersGer
UNION
SELECT * FROM CustomersMex
GO

  创建一个在上述视图上的INSTEAD OF触发器:

CREATE TRIGGER Customers_Update2

ON CustomersView

INSTEAD OF UPDATE AS

DECLARE @Country nvarchar(15)

SET @Country = (SELECT Country FROM Inserted)

IF @Country = 'Germany'

BEGIN

UPDATE CustomersGer

SET CustomersGer.Phone = Inserted.Phone

FROM CustomersGer JOIN Inserted

ON CustomersGer.CustomerID = Inserted.CustomerID

END

ELSE

IF @Country = 'Mexico'

BEGIN

UPDATE CustomersMex

SET CustomersMex.Phone = Inserted.Phone

FROM CustomersMex JOIN Inserted

ON CustomersMex.CustomerID = Inserted.CustomerID

END
 
[收藏] [返回顶部] [打印本页] [关闭窗口]  
 
 
 
 相关主题:  
 
SQL Server 2000中的触发器使用(一)
SQL Server 2000中的触发器使用(二)
SQL Server 2000中的触发器使用(三)
 
 网友评论:
正在加载……
 
*评论者:
主页:
标题:
*内容:
【声明】 地球黑匣子网刊载的资讯及其他内容均由网友提供分享 并且纯属作者个人观点,不表示地球黑匣子网同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系,我们会马上进行重新整理!
最新日志列表
人气主题
 
 
 
 
声明:本网站部分内容属网民发布和来自于互联网。对于引用、发布、转载和放置的内容(广告、链接、文字、图像或声音),所产生的所有法律责任,都将由信息归属者或者广告厂商提供者承担,并且由此产生的版权、署名权的异议、纠纷,本网站概不承担任何责任,本站转载素材仅供大家欣赏和分享,切勿做为商业目的使用。
 
Copyright © 地球黑匣子网 2007.06 - 2009   Email:dqhxzcom@163.com
鲁ICP备07501416号   QQ:254212580 网站管理