栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以告诉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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号