禁用TSQL脚本检查?

gra*_*ady 6 t-sql sql-server

假设我有一个这样的脚本:

如果(某些条件)开始从某个结局中选择一些列

可以说,"somecolumn"不存在且条件不正确,这意味着select 不会被执行.即使不执行select,脚本也无效,Management Studio会抱怨缺少的列"somecolumn".

问题:我可以以某种方式禁用这种检查,以便执行脚本,因为if不是真的,它永远不会注意到列丢失了吗?

谢谢 :-)

gbn*_*gbn 5

使用动态 SQL

if(some condition)
begin
    exec ('select somecolumn from sometable') --or sp_executesql
end
Run Code Online (Sandbox Code Playgroud)

由于 SQL 是什么,运行它实际上没有意义。它不是逐行执行的:整个批次都被一次性解析等,并在此处生成错误,然后才真正按照您的意思运行。这是设计的...