【问题标题】:how to use update trigger in sql server 2008 with specific column如何在具有特定列的 sql server 2008 中使用更新触发器
【发布时间】:2014-05-22 16:54:40
【问题描述】:

您好朋友,目前我的触发器更新表更新,我需要将其更改为仅在特定列更改时触发。

   /****** Object:  Table [dbo].[User_Detail]   ******/


SET ANSI_NULLS ON

设置 QUOTED_IDENTIFIER ON 去吧

   CREATE TABLE [dbo].[User_Detail](
  [sno] [int] IDENTITY(1,1) NOT NULL,
  [userid] [nvarchar](50) NULL,
  [name] [nvarchar](max) NULL,
  [jointype] [nvarchar](50) NULL,
  [joinside] [nvarchar](50) NULL,
  [lleg] [nvarchar](50) NULL,
  [rleg] [nvarchar](50) NULL,
  [ljoining] [int] NULL,
  [rjoining] [int] NULL,
  [pair] [int] NULL
    ) ON [PRIMARY]

  GO

/** 对象:表[dbo].[User_Detail] 表数据**/

 SET IDENTITY_INSERT [dbo].[User_Detail] ON
  INSERT [dbo].[User_Detail] values (1, N'LDS', N'LDS Rajput', N'free', N'Left', N'jyoti123', N'SUNIL', 6, 4, 4)
  INSERT [dbo].[User_Detail]  VALUES (2, N'jyoti123', N'jyoti rajput', N'free', N'Left', N'mhesh123', N'priya123', 3, 2, 2)

 SET IDENTITY_INSERT [dbo].[User_Detail] OFF

/** 对象:表[dbo].[User_Detail] 触发器**/

CREATE TRIGGER triggAfterUpdate ON User_Detail
 FOR UPDATE
     AS
        declare @userid nvarchar(50);
        declare @pair varchar(100);

        select @userid=i.userid from inserted i;    
        select @pair=i.pair from inserted i;    

        SET NOCOUNT ON
        if update(pair)

        begin   
        insert into Complete_Pairs(userid,pair) 
        values(@userid,1);
  end

 GO


/****** Object:  Table [dbo].[Complete_Pairs]    Script Date: 05/22/2014 21:20:35 ******/

设置 ANSI_NULLS ON 去吧

   SET QUOTED_IDENTIFIER ON
   GO

 CREATE TABLE [dbo].[Complete_Pairs](
[Sno] [int] IDENTITY(1,1) NOT NULL,
[userid] [nvarchar](50) NULL,
[pair] [int] NULL
 ) ON [PRIMARY]

GO

我的查询是 TRIGGER,triggAfterUpdate 仅在 User_Details 表中的 pair 列仅更新并且当我们更新 ljoin 或 rjoin 等其他列时触发,然后我的触发器不会触发

请任何人建议我们如何完成或提供解决方案

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    没有针对特定列条件触发触发器的解决方案。您可以使用已经使用的 IF UPDATE 构造来测试列是否已更新。

    见:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/3763ff31-1e28-435f-be67-116655821df6/how-to-create-column-level-trigger?forum=transactsql

    【讨论】:

      猜你喜欢
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多