zoukankan      html  css  js  c++  java
  • 触发器deleted 表和 inserted 表详解

    触发器deleted 表和 inserted 表详解

    2011-01-07  来自:博客园  字体大小:【  
    • 摘要:触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。
    create trigger updateDeleteTime
    on user
    for update
    as
    begin 
     update user set UpdateTime=(getdate()) from user inner join inserted on user.UID=Inserted.UID
    end

    上面的例子是在执行更新操作的时候同时更新,一下修改时间。
    关键在于Inserted表
    触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。
    Deleted 表用于存储 DELETE 和 UPDATE 语句所影响的行的复本。在执行 DELETE 或 UPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。

    Inserted 表用于存储 INSERT 和 UPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。

    1.插入操作(Insert) 
    Inserted表有数据,Deleted表无数据 

    2.删除操作(Delete) 
    Inserted表无数据,Deleted表有数据 

    3.更新操作(Update) 
    Inserted表有数据(新数据),Deleted表有数据(旧数据)

    应用实例

    代码
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go


    -- =============================================
    --
     Author:        <Author,sufei>
    --
     Create date: <Create Date,2010-05-11>
    --
     Description:    <当是短信充值时修改相信的记录使记录不会重复获取>
    --
     =============================================
    ALTER TRIGGER [dbo].[updatestart]
       ON [dbo].[OrderTelecom] FOR update
    AS 
    BEGIN
        
        DECLARE @state int;
        DECLARE @note2 varchar(50)
        
        SELECT  @state= Inserted.ortState,@note2 =Inserted.ortNote2 from Inserted
        
        IF @state=1 AND @note2=1
         begin
            --当发短信猫取走记录时修改状态为成功和取过的状态
          update OrderTelecom set OrderTelecom.ortState=2 ,OrderTelecom.ortSmsmessages='短信充值成功'
          from OrderTelecom inner join Inserted on OrderTelecom.ortId=Inserted.ortId 
         end
         
         if @state in(2,3,10and @note2=0
          begin
          update OrderTelecom set ortNote2=1
          from OrderTelecom inner join Inserted on OrderTelecom.ortId=Inserted.ortId 
         end
     
    END


  • 相关阅读:
    LeetCode 453 Minimum Moves to Equal Array Elements
    LeetCode 112 Path Sum
    LeetCode 437 Path Sum III
    LeetCode 263 Ugly Number
    Solutions and Summay for Linked List Naive and Easy Questions
    AWS–Sysops notes
    Linked List
    All About Linked List
    datatable fix error–Invalid JSON response
    [转]反编译c#的相关问题
  • 原文地址:https://www.cnblogs.com/meimao5211/p/3326595.html
Copyright © 2011-2022 走看看