`
isiqi
  • 浏览: 16694332 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

inserted表的一些认识

阅读更多

一、

对于SQL UPDATE触发器来说,当发生更新时,生成的inserted表中,数据是所更新的那条数据的整个记录!如下:

若表TABLE1

a bc

1 1 1

更新b为2时,inserted表中的数据是

a b c

1 2 1

即其他没更新的部分也一起保留在了inserted表中

------------------------------------------------------

二、

CREATE TABLE tb(id int,val int)
INSERT INTO tb SELECT 1,2
UNION ALL SELECT 2,3
UNION ALL SELECT 3,4

如果
update tb set
val
= 10
where id < 3

那触发器内的inserted和deleted就是两条记录.id为1,2的记录.
但inserted的val 就是10,而deleted的val 就是2和3;

分享到:
评论

相关推荐

    SQL Inserted和deleted详解

    ### SQL Inserted 和 Deleted 表详解 在 SQL Server 中,`Inserted` 和 `Deleted` 是两个特殊的表,它们主要用于触发器(Trigger)中。当执行 INSERT、UPDATE 或 DELETE 操作时,系统会自动创建这两个虚拟表,并...

    sql server触发器中自动生成的临时表

    在 SQL Server 触发器中,系统自动会生成两张临时表,分别是 deleted 和 inserted 表。这些表可以理解为临时表,也可以认为是逻辑表或概念表。它们的表结构与原表是完全相同的。 Inserted 表和 Deleted 表的作用 ...

    如何使用Microsoft SQL Server 2000中的逻辑表.pdf

    inserted表中包含了插入触发器作用的基本表中新插入的数据行的复制,而deleted表则包含了从删除触发器作用的基本表中被删除的数据行的复制。在修改触发器中,当对基本表进行记录修改时,会同时产生inserted表和...

    与SQL Server 2000触发器相关的二个临时表的辨析.pdf

    进一步地,文档中也提到了一些特殊情况下的触发器处理,例如当触发器自身需要进行更新、删除操作时,如何正确处理inserted和deleted临时表中的数据以避免触发器递归调用。 最后,文档中提到了一些参考资料,如...

    触发器中两个临时表详解.pdf

    inserted 表的结构和内容可以通过 select * from inserted 来反映,deleted 表为空,表明没有删除操作。 类似地,在 Delete 操作后,inserted 和 deleted 表的结构、内容可以通过创建一个针对 Delete 操作的触发器...

    使用 Trigger 紀錄資料表的新增、修改、刪除的行為

    inserted表保存了新插入或更新后的数据,而deleted表则保存了被删除或更新前的数据。对于INSERT操作,只有inserted表会被填充;对于UPDATE操作,inserted表包含更新后的新值,deleted表包含更新前的旧值;而对于...

    触发器同时插入两表(表结构不同)

    触发器同时插入两表(表结构不同)create trigger Mytr on ZJK_YH for insert as begin insert into ZJK_ZJZLXXB (ZJJCXXB_ZJUID,ZJJCXXB_XM,ZJJCXXB_XB,ZJJCXXB_CSNY) select YH_UID,YH_XM,YH_XB,YH_CSNY from...

    SQL心得体会

    在本文中,我们将深入探讨两个与触发器紧密相关的临时表——Inserted和Deleted,以及如何利用它们来实现数据的跟踪和备份。 Inserted表和Deleted表是在触发器执行期间创建的隐式内部表,它们仅在触发器的上下文中...

    触发器---FOR INSERT与INSTEAD OF

    例如,在上面的示例中,我们使用inserted表来获取刚刚插入的记录,并将其插入到tb1表中。 INSTEAD OF触发器 INSTEAD OF触发器是指用触发器来代替INSERT语句的执行。例如,在上面的示例中,我们创建了一个名为tri_...

    SQL Server 2000触发器运行机制的逻辑分析.pdf

    而INSTEAD OF触发器在触发时,它作用的数据表实际上还没有发生变动,此时只有deleted表或inserted表发生了数据变化,通过判断这两个临时表中的数据来决定如何用指定的操作来代替原定的数据变动操作。 通过建立一个...

    sql server TRIGGER与逻辑表INSTERED 和 DELETED

    这篇博文可能还会介绍如何编写触发器代码,并提供一些最佳实践和示例,以帮助读者更好地理解和应用触发器和逻辑表。由于提供的链接可能不直接指向文章内容,而是指向博客主页,因此需要访问文章页面来获取更具体的...

    SQL Server中多行数据更新的触发器应用研究.pdf

    在该实例中,通过创建一个数据插入触发器,利用inserted表中的数据,与课程表进行内连接,从而生成新的成绩记录,并将这些记录插入成绩表中。这种方法自动填充数据,减少了手动操作的复杂性和出错的概率。 第二个...

    sql数据库实践实验六

    - inserted表:当数据被插入或更新时,系统会创建一个inserted表,存储新插入或更新后的数据。 - deleted表:在数据被删除或更新时,deleted表会存储被删除或更新前的数据。 - 在"学生表"上创建ins_del_sample...

    SQL_Server触发器创建、删除、修改、查看示例教程.doc

    SQL Server 为每个触发器都创建了两个专用表:Inserted 表和 Deleted 表。这两个表由系统来维护,它们存在于内存中而不是在数据库中。这两个表的结构总是与被该触发器作用的表的结构相同。触发器执行完成后,与该...

    利用SQLServer触发器实现表跟踪.pdf

    触发器的执行过程中,SQL Server 会维护两个虚拟表,分别是Inserted表和Deleted表。这两个表在触发器被触发时存在,用以存储操作所涉及的数据。具体而言,Deleted表存储的是被DELETE或UPDATE语句影响的行的副本,即...

    关于迭代器失效的一些认识

    std::cout &lt;&lt; "Inserted value: " *iter ; for (std::vector&lt;int&gt;::iterator it = vec.begin(); it != vec.end(); it++) { std::cout *it ; } std::cout ; return 0; } ``` #### 四、案例分析解读 1. **删除...

    EXEC&#40;EXECUTE&#41;函数访问INSERTED或DELETED的内部临时触发表

    在SQL Server中,`INSERTED`和`DELETED`是两个特殊的系统表,它们在触发器执行时自动创建,用于存储触发操作前后的数据状态。`INSERTED`表存储了新插入的数据,而`DELETED`表则保存了被删除的数据。这两个表都是逻辑...

    sqlserver触发器例子

    SQL Server为每个触发器创建了两个特殊的表——Inserted表和Deleted表。这两个表由系统维护,并且只存在于内存中,而不是数据库中。这两个表的结构与触发器作用的表结构完全相同。 - **Deleted 表**:存储由于执行...

    SQL Server中DML触发器的实用性研究.pdf

    代码中需要包含触发器被激活时的执行逻辑,以及如何使用INSERTED和DELETED表。 4. 测试 最后进行触发器的测试,确保其能够按照预期工作,验证在不同的数据变更情况下触发器的行为是否正确。 以文章中的示例为例,...

Global site tag (gtag.js) - Google Analytics