SQL Server数据库技术(78)

2016-01-29 16:55 4 1 收藏

SQL Server数据库技术(78),SQL Server数据库技术(78)

【 tulaoshi.com - SQLServer 】

  在以上部分我们讨论了触发器的优缺点、工作原理以及创建触发器的具体方法。接下来我们将阐述各种不同复杂程度的触发器的应用。

12.9.1 插入型触发器的应用


12.9.1 插入型触发器的应用



    更新型触发器有两种类型:通常意义上的更新型触发器和用于检查列改变的更新型触发器,这主要是因为更新操作可以涉及到数据项。
通常意义上的更新型触发器;
在前面我们已经提到更新操作包括两个部分,先将需更新的内容从表中删除掉,然后插入新值。因此,更新型触发器同时涉及到删除表。和插入表下面结合具体例子来对其进行讨论。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)


    在有些更新中,更新的内容并不是整个记录,而仅仅是一列或几列,这时就要用到用于检查列改变的更新型触发器。它与通常意义上的触发器不同之处主要表现在它包括以下保留字:



    在用Transaction_SQL 的CREATE TRIGGER 命令创建触发器那部分我们已经给出上述保留字的具体含义。下面我们将给出两个例子,这两个例子分别用到了IF UPDATE(column) 和IF (COLUMNS_UPDATED()。


   



注意:必须首先删除与表title已建立主外键的各关系,上述触发器才能被触发。




12.9.4 嵌套触发器
    当某一触发器执行时,其能够触发另外一个触发器,这种情况称之为触发器嵌套。在MS SQL Server 中触发器能够嵌套至32 层。如果不需要嵌套触发器,可以通过sp_configure选项来进行设置。

    在执行过程中,如果一个触发器修改某个表,而这个表已经有其它触发器,这时就要使用嵌套触发器。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)


来源:http://www.tulaoshi.com/n/20160129/1499814.html

延伸阅读
标签: SQLServer
在企业管理器中可以很方便地调用其它SQL Server 工具,如SQL Server Query Analyzer (查询分析器)、SQL Server Profiler (跟踪器)等,只须从“Tools (工具)”菜单中选择相应的工具即可。 SQL Server 2000 中提供了大量的向导工具,可以引导用户完成一系列的数据库与服务器管理工作。可以从“Tools (工具)”菜单中选择“Wizards” 选项,或从工...
标签: SQLServer
除了使用系统提供的数据类型外,用户还可以根据需要用自定义的数据类型来定义表的列或声明变量。 7.3.1 用Enterprise Manager 创建用户自定义数据类型 用Enterprise Manager 创建用户自定义数据类型的方法是:在Enterprise Manager 中选择要创建用户自定义类型的数据库,在数据库对象“User Defined Data Types”上单击右键,从开始菜单...
标签: SQLServer
11.3.1 UPDATE 语法 用户可以用UPDATE 语句来更新表中一列或多列数据值,其语法如下: 各参数说明如下: SET SET 子句用于指定更新的方法,即用 的值取代相应的列的值。如果省略 WHERE 子句,那么表中的所有数据均会受到影响。在FROM 子句中指定的表或列的别名不能用于SET 子句中。 column_name 指定要更新数据的列。IDENTITY 列不能...
标签: SQLServer
    在MS SQL Server 2000 中,创建一个存储过程有两种方法:一种是使用Transaction-SQL 命令Create Procedure, 另一种是使用图形化管理工具Enterprise Manager。 用Transaction- SQL 创建存储过程是一种较为快速的方法,但对于初学者,使用Enterprise Manager 更易理解,更为简单。 当创建存储过程时,需要确定存储过程...
标签: SQLServer
每一个游标必须有四个组成部分这四个关键部分必须符合下面的顺序; 1.DECLARE 游标 2.OPEN 游标 3.从一个游标中FETCH 信息 4.CLOSE 或DEALLOCATE 游标 通常我们使用DECLARE 来声明一个游标声明一个游标主要包括以下主要内容: 游标名字 数据来源(表和列) 选取条件 属性(仅读或可修改) 其语法格式如下: DECLARE cursor_name [INSENSITIVE] [...