SQL Server EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表
2022-11-12 09:48:01
内容摘要
这篇文章主要为大家详细介绍了SQL Server EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做
文章正文
这篇文章主要为大家详细介绍了SQL Server EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
刚开始时,这个表的字段很少(10个以内),前开发者把这个表的所有存储过程与触发器以及表函数全是写死了。用户每添加一些字段,都需要手动去更改这些存储过程与触发器以及表函数。现在这个表的字段已经高达300个以上,有可能还会增长,因此Insus.NET的业务就是把这此静态全改写为动态处理。然而有一个问题一直困拢至昨天,昨天是星期天本应是休息的,但是这个问题没有解决,因此这天算不上休息了。问题就是改写表的触发器,涉及到EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表,如:代码如下:
1 2 3 | <code> EXECUTE( 'SELECT ' + @N + ' = ISNULL([' + @I + '],0) FROM inserted' ) </code> |
代码如下:
1 2 3 4 | <code> SELECT * INTO #inserted FROM INSERTED SELeCT * INTO #deleted FROM DELETED </code> |
代码如下:
1 2 3 4 | <code> DECLARE @F NVARCHAR(MAX) = CONVERT(NVARCHAR(MAX),@I) --@I动态字段 EXECUTE ( 'SELECT [' + @F +'] FROM #deleted) </code> |
注:关于SQL Server EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表的内容就先介绍到这里,更多相关文章的可以留意
代码注释