你好
CREATE  TRIGGER  [dbo].[触发器名] ON [dbo].[表1] 
FOR   DELETE 
AS
--定义相同字段,由于后面要通过sql变量执行,所以必须使用nvarchar类型
Declare @SameCol nvarchar(max)
select a.name,convert(int,1) ID into #tabTT from ( 
   select b.name from sysobjects a  left join syscolumns b on a.id = b.id where a.name ='表1'
) a 
left join ( 
   select b.name from sysobjects a left join syscolumns b on a.id = b.id where a.name ='备份表'
) b on a.name = b.name  
where ISNULL(b.name,'') <> ''
--相同字段组合成字符串
select ID,
       stuff((select ','+name from  #tabTT  
            where c.ID=ID 
            for xml path('')),1,1,'') as name
into #tabTB
from #tabTT c   
group by c.ID
select @SameCol=name from #tabTB
drop table #tabTT
drop table #tabTB
--必须先将触发器表格放到临时表,不然创建后sql对象是无法访问deleted和updated的
select * into #tabCC from deleted
--获取电脑名称
Declare @Mach nvarchar(50)  
select @Mach= a.host_name from sys.dm_exec_sessions a , sys.dm_exec_connections b
	where a.session_id=b.session_id and a.session_id = @@SPID
--组装sql语句
declare @sql nvarchar(max);
set @sql='	insert into 备份表(Dodate,'+@SameCol+')'+
'select Convert(varchar(23), GetDate(),21)+''_''+'''+@Mach+''','+@SameCol+'  from  #tabCC'
--print @sql
EXECUTE sp_executesql @sql
drop table #tabCC
GO
                    © 版权声明
重要提示
        虚拟资源具有可复制性: 建议具有一定思考和动手能力的用户获取,并且学习使用。本站资源均为网友收集整理而来,仅供学习和研究使用。
        请谨慎考虑: 小白用户和缺乏思考动手能力者不建议赞助。
        虚拟商品购买须知: 虚拟类商品,一经打赏赞助,不支持退款。请谅解,谢谢合作!
        如有解压密码: 看下载页、看下载页、看下载页。
    
THE END
    




