SqlServer触发器的一个例子
先抄一点关于触发器的文字介绍,后边谈我自己的例子:
一、Trigger语法: 说明: 下面谈一点心得: USE [EvaluateSystem]
GO
Create trigger [dbo].[AddDataColumn] on [dbo].[EvaluateHierarchy] after insert as declare @s varchar(50) declare @n int declare @sql NVARCHAR(539) begin select @s=TwoLevelStandard from inserted i select @n=COUNT(*) from EvaluateHierarchy where TwoLevelStandard=@s if(@n=1) begin SET @sql = N'alter table [dbo].[EvaluateData] add '+ @s+ ' varchar(50) null' + N';' exec(@sql) end end
这个应该都能看懂,我说说自己觉得困难的地方 alter table [dbo].[EvaluateData] add '+ @s+ ' varchar(50) null
这一句直接写在这个触发器中,等待顺序执行,调了半天并没有用,还一直报错,后来发现要用exec来执行 3.exec执行动态sql语句时不能执行这种语句 exec('alter table [dbo].[EvaluateData] add '+ @s+ ' varchar(50) null' )
但是可以执行这种语句(这个细节折磨了我半天) exec(@sql)
4.触发器的调试,这个玩意因为是个后台被动触发,所以要执行相应的语句才能进入,即单步调试(f10)一个插入语句,执行到insert时F11进入就可以了 贴一个链接,这篇帖子给我很大帮助[exec用法] (http://www.cnblogs.com/12go/archive/2011/09/13/2174853.html)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |