`

[SQL2005触发器学习] Instead Of触发器

 
阅读更多

[SQL2005触发器学习] Instead Of触发器

1、Instead Of触发器的工作原理
    Instead Of触发器与After触发器的工作流程是不一样。After触发器是在SQLSERVER服务器接到执行SQL语句请求之后,先建立Inserted和Updated临时表,然后在更改物理表上的数据,最后才激活触发器程序。而Instead Of触发器在SQLSERVER服务器接到执行SQL语句请求,建立Inserted和Updated临时表后就激活了Instead Of触发器程序,至于SQL语句的请求如何操作数据就不在管了,把执行权全权叫给了Instead Of触发器。
2、Instead Of触发器使用范围
    ♣ 数据表里的数据禁止修改 
    ♣ 有可能要回滚修改的SQL语句,有些判断需要在执行之前进行,所以After触发器并不是最好的选择,Instead Of触发器更合适。
    ♣ 在试图中使用触发器, After触发器不能在视图中使用。
    ♣ 用自己 的方式去修改数据。可以用Instead Of 触发器来控制数据的修改方式和流程。
3、注意事项
    ☞ Instead Of触发器和After触发器均不能建立在临时表上。
    ☞ 在同一个数据表中,对每个操作(Insert,Update,Delete)只能建立一个Instead Of触发器。
    ☞ writetext语句不能触发Insert和update类型的触发器。
    ☞ Truncate Table 语句类似于Deleteuju,但是它不激活触发器。
4、Instead Of触发器实例    

Create Trigger OrderDetail_Insert ON OrderDetail Instead Of Insert AS Begin Set Nocount On; /*屏蔽触发器里Insert语句执行完后返回的所影响的行数的消息*/ Declare @Orderid int,@Price money,@discount real select @OrderId=OrderId,@Price=Price,@Discount=Discount from Inserted if(@Discount)>0.6 begin print '折扣不能大于0.6' end else begin insert into OrderDetail(OrderId,Price,Discount) values(@OrderId,@Price,@discount) end End
分享到:
评论

相关推荐

    基于sql server 2005的触发器的创建及操作

    在SQL Server 2005中,触发器是一种特殊的存储过程,它在特定的数据操作语言(DML)事件,如INSERT、UPDATE或DELETE发生时自动执行。触发器可以帮助实现复杂的业务规则和数据完整性,通过扩展SQL语句的功能,提供了...

    sql2005触发器基础学习教程

    ### SQL Server 2005 触发器基础学习教程 #### 一、触发器概述 触发器是一种特殊类型的存储过程,它会在特定的数据库事件(如数据的增删改)发生时自动执行。在SQL Server 2005中,触发器主要用于维护数据完整性和...

    SQLServer触发器语法.pdf

    2. INSTEAD OF 触发器:执行触发器而不是执行触发 SQL 语句,从而替代触发语句的操作。 3. FOR 触发器:相当于 AFTER 触发器,但可以选择是否指定触发器所有者名称。 三、触发器的执行顺序 触发器的执行顺序如下所...

    sqlserver触发器例子

    SQL Server 2000 支持两种类型的触发器:Instead Of 触发器和 After 触发器。 - **Instead Of 触发器**:这种类型的触发器用于替代引起触发器执行的T-SQL语句。它可以用于表和视图,以扩展视图可以支持的更新操作。 ...

    SqlServer触发器写法案例

    2. **INSTEAD OF 触发器**:这种触发器在数据修改之前执行,并且将替代实际的数据修改操作。它可以用来实现更复杂的逻辑处理。 #### 三、触发器语法 触发器的基本语法结构如下: ```sql CREATE TRIGGER [trigger_...

    sqlserver 触发器学习(实现自动编号)

    在SQL Server中,触发器是一种特殊的存储过程,它在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行,以实现复杂的数据完整性规则或业务逻辑。本篇将深入探讨触发器的基本概念、类型、分类及如何实现...

    sql server触发器.rar

    INSTEAD OF触发器则在操作之前运行,可以完全替代默认的行为。 3. **优点与注意事项**: - **优点**:触发器能确保数据完整性,执行复杂的业务逻辑,实现审计跟踪,以及在多表操作中的级联更新。 - **注意事项**...

    第05节:SQLServer触发器Demo源代码.rar

    - `BEFORE` 触发器(在SQL Server中不直接支持,但可以通过`AFTER`和`INSTEAD OF`模拟实现)。 3. **触发器的用途** - 数据验证:确保插入、更新或删除的数据符合业务规则。 - 数据审计:记录数据库中的变动,...

    关于SqlServer 触发器的PPT

    `INSTEAD OF`触发器则更加特殊,它允许在触发操作(如DELETE)执行前替代默认行为,这意味着触发器中的SQL语句会取代原本的操作。 总的来说,触发器是SQL Server中强大的工具,但需谨慎使用。在设计数据库解决方案...

    sql 触发器 详解与实例

    【SQL触发器详解与实例】 SQL触发器是数据库管理系统中的一种特殊存储过程,它与普通存储过程的主要区别在于,触发器并非由用户直接调用,而是由特定的数据库操作(如INSERT、UPDATE、DELETE)自动触发执行。触发器...

    使用SQL Server触发器实现数据表的级联更新.pdf

    DML触发器可以被分为两种触发方式:After触发方式和Instead Of触发方式。After触发方式是比较常用的触发方式,触发器在进行数据操作以后被触发,先执行了触发语句,然后执行了触发器。Instead Of触发方式是在数据...

    sql server 2005学习笔记之触发器

    Instead Of触发器则在数据修改前触发,它不执行原SQL语句中的操作,而是执行触发器定义的操作,常用于替代原始的DML行为。 DDL触发器响应数据定义语言(Data Definition Language)事件,如CREATE、ALTER和DROP等,...

    SQL Server触发器

    在SQL Server中,触发器分为两种主要类型:后触发器(AFTER Trigger)和替代触发器(INSTEAD OF Trigger)。 1. 后触发器:这种触发器在DML操作(如INSERT、UPDATE或DELETE)实际执行后触发。它们通常用于执行额外...

    16.sql.server.2005.触发器 16.sql.server.2005.触发器

    学习SQL Server 2005的触发器,建议从基础概念开始,理解触发器的工作原理和使用场景,然后通过实际示例学习如何创建、修改和删除触发器。同时,了解如何调试触发器并解决可能出现的问题也非常重要。 综上所述,...

    SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器

    然而,一个常见的误解是将DDL触发器等同于INSTEAD OF触发器,这实际上是不准确的。 DDL触发器的运作机制实际上类似于AFTER触发器,它在DDL操作执行之后触发。这意味着当用户尝试执行一个DDL语句,如ALTER TABLE,...

    SQLServer2005数据库触发器应用

    SQL Server 2005提供了两种类型的触发器:Instead of触发器和After触发器。Instead of触发器可以在引发其执行的T-SQL语句之前激活,允许替换原始的数据库操作。这使得在视图上扩展更新操作成为可能,因为Instead of...

    sqlserver2000触发器

    值得注意的是,FOR触发器不能在视图上直接创建,而是需要使用INSTEAD OF触发器。然而,即便是在SQL Server 2000的文档中表明可以在视图上创建触发器,但在实际操作中,这可能导致“对象无效”的错误。 在某些特定...

    SQL2005 触发器

    在SQL Server 2005中,触发器是一种特殊的存储过程,它会在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行。这个案例主要展示了如何创建和使用触发器来管理数据库中的数据完整性。 首先,我们看到有两...

Global site tag (gtag.js) - Google Analytics