是否可以告诉SSMS不要检查t-sql脚本中是否存在列?

是否可以告诉SSMS不要检查t-sql脚本中是否存在列?,第1张

是否可以告诉SSMS不要检查t-sql脚本中是否存在列?

是的,没有动态SQL是可能的,但是有一些麻烦的解决方法。我只会用

EXEC
这个。

此处说明了SQL 2000中的行为

Erland Sommarskog提到“一旦查询中的所有表都存在,SQL Server会对查询执行完全检查。”

因此,通过在查询中向不存在的表添加无 *** 作引用,可以推迟编译。通过此调整,下面的脚本可以多次运行而不会出现错误。

insert into test values ('Name', 0, 5, 10)if not exists (select 1 from INFORMATION_SCHEMA.COLUMNS      where COLUMN_NAME = 'ValueC' and TABLE_NAME = 'test')begin alter table test add ValueC intendgocreate table #dummy(i int)-- This batch raised error when run more then once!if exists (select 1 from INFORMATION_SCHEMA.COLUMNS     where COLUMN_NAME = 'ValueA' and TABLE_NAME = 'test')begin update test set ValueC = (select case Switch      when 0 then (select (ValueA - ValueB))      when 1 then (select (ValueB - ValueA))     end) where not exists(select * from #dummy)enddrop table #dummygoif exists (select 1 from INFORMATION_SCHEMA.COLUMNS     where COLUMN_NAME = 'ValueA' and TABLE_NAME = 'test')begin alter table test drop column ValueAendgoselect * from test--Name 0 10 -5


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5057967.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-16
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存