WEB开发网
开发学院数据库MSSQL Server 如何使用SQL Server INSTEAD-OF触发器 阅读

如何使用SQL Server INSTEAD-OF触发器

 2007-05-19 09:43:04 来源:WEB开发网   
核心提示:触发器是类似于存储程序的数据库对象,它响应数据库环境下的某个请求,如何使用SQL Server INSTEAD-OF触发器,SQL Sever 2005包含3个触发器对象:AFTER,数据定义语言 (DDL)和INSTEAD-OF,因此可以用此方法设计系统,而不需要担心OLTP数据库大纲的问题,AFTER触发器是存储程

触发器是类似于存储程序的数据库对象,它响应数据库环境下的某个请求。SQL Sever 2005包含3个触发器对象:AFTER,数据定义语言 (DDL)和INSTEAD-OF。

AFTER触发器是存储程序,它发生于数据操作语句作用之后,例如删除语句等。DDL是SQL Server 2005的新触发器,允许响应数据库引擎中对象定义水平事件(例如:DROP TABLE语句)。INSTEAD-OF触发器是对象,在数据库引擎中可以取代数据操作语句而执行。例如:将INSTEAD-OF INSERT触发器附加到表,告诉数据库执行此触发器。

使用INSTEAD-OF触发器的理由

INSTEAD-OF触发器是SQL Sever功能强大的对象,允许开发人员转移数据库引擎完成不同的工作,以满足开发要求。其中的一个例子是在数据库的表中添加INSTEAD-OF触发器,当不需要修改表时,可以对表的内容进行回滚。使用此方法时,必须格外小心,因为任何指定的表修改之前,INSTEAD-OF触发器必须处于激活状态。

使用INSTEAD-OF触发器一个更充分理由是视图处理。在视图中添加INSTEAD-OF触发器后,则可创建更新的视图。可更新视图允许完整地提取数据库大纲,因此可以用此方法设计系统,而不需要担心OLTP数据库大纲的问题,并且取代数据修改一组标准视图集。

范例

<b>Listing A</b>
CREATE TABLE Products
(
   ProductID SMALLINT IDENTITY(1,1) PRIMARY KEY,
   Description VARCHAR(75),
   Price MONEY NOT NULL
)
GO
CREATE TABLE Purchases
(
   PurchaseID SMALLINT IDENTITY(1,1) PRIMARY KEY,
   ProductID SMALLINT REFERENCES Products(ProductID),
   PurchasePrice MONEY NOT NULL,
   PurchaseDate SMALLDATETIME DEFAULT(GETDATE())
)

1 2 3  下一页

Tags:如何 使用 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接