最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > EXEC(EXECUTE)函数访问INSERTED或DELETED的内部建站知识

EXEC(EXECUTE)函数访问INSERTED或DELETED的内部建站知识

时间:2023-05-21 20:05:21 阅读: 文章分类: 网站建设 作者: 网站技术员

导读:1建站知识近段时间,MS SQL方面,一直需要开发动态方面的存储过程或是触发器以及表函数。因为程序设计一开始就是让用户动seo网站关键词优化个业网站建设公司。

seo网站关键词优化个业网站建设公司刚开始时,这个表的字段很少(10个以内),前开发者把这个表的所有存储过程与触发器以及表函数全是写死了。用户每添加一些字段,都需要手动去更改这些存储过程与触发器以及表函数。现在这个表的字段已经高达300个以上,有可能还会增长,因此Insus.NET的业务就是把这此静态全改写为动态处理。 然而有一个问题一直困拢至昨天,昨天是星期天本应是休息的,但是这个问题没有解决,因此这天算不上休息了。 问题就是改写表的触发器,涉及到EXEC(EXECUTE)函数访问INSERTED或DELETED的内部临时触发表,如:

复制代码 代码如下:

EXECUTE('SELECT '+ @N +' = ISNULL(['+ @I +'],0) FROM inserted')

当你尝试执行上面的SQL语句,会得到一个异常提示:invalid object name 'inserted'。我们无法显示访问INSERTED或DELETED的内部临时触发表。 由于INSERTED或是DELETED表是动态驻留在内存中,而不是存储在数据库中,它不是显式的。触发器的执行是在导致触发器被触发的执行计划中。当我们使用EXEC(EXECUTE营销型网站建设)或sp_executesql执行动态生成的SQL语句时,它却是另外一个单独的执行计划。两者之间的资源无法相互访问,再加上计划执行完毕,内存也随之释放资源了。 但是问题还是需要解决,Insus.NET想起的还是临时表。可以把INSERTED或DELETED表中的数据,首先转换入临时表了。这样子,我们就可以对临时表的数据进行处理了。

复制代码 代码如下:

SELECT * INTO #inserted FROM INSERTED SELeCT * INTO #deleted FROM DELETED

实现代码:

复制代码 代码如下:

DECLARE @F NVARCHAR(MAX) = CONVE网站seo优化课程RT(NVARCHAR(MAX),@I) --@I动态字段 EXECUTE ('SELECT ['+ @F +'] FROM #de网站seo优化leted)

相关seo网站关键词优化个业网站建设公司。

关键词标签: 标签 函数

声明: 本文由我的SEOUC技术文章主页发布于:2023-05-21 ,文章EXEC(EXECUTE)函数访问INSERTED或DELETED的内部建站知识主要讲述函数,标签,EXEC(EXECUTE)函数访问INSERTE网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_3889.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章