get inserted values into...

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


alter trigger [tri3] on [dbo].[stu]
after insert --,update,delete
as
declare @intCountColumn int,
  @intColumn int,
  
        @actionId varchar(36),
  @tableName varchar(10),
  @columnName varchar(10),
  @oldValue varchar(10),
  @newValue varchar(10),
  @modDate  datetime,
  @sqlCommand nvarchar(1000)

 

begin
 select @tableName = 'stu'
 select @intColumn=1
 select @intCountColumn=count(ordinal_position)
 from Information_Schema.Columns
 where Table_name=@tableName
 select @modDate = getDate()
 select @actionId = NEWID()

--inserted

 while @intColumn<=@intCountColumn
 BEGIN
 select   *   into   #t   from   inserted
 select @columnName = Col_Name(Object_ID(@tableName),@intColumn)
 select @sqlCommand ='select  @newValue= '+@columnName+' from  #t'
 execute sp_executesql   @sqlCommand,    N'@newValue varchar(36) output',    @newValue output
 --print @newVvalue

  INSERT history (ACTIONID,TABLENAME,COLUMNNAME,NEWVALUE,moddate)
  SELECT @actionId,@tableName,@columnName,@newValue,@modDate

  --print 'Column (' + Cast(@intColumn as varchar)+')'+Col_Name(Object_ID('stu3'),@intColumn)+' has been changed'
   drop table #t
   set @intColumn = @intColumn+1
  END
end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值