在 SSMS 中执行以下操作时;
if not exists (select * from sys.databases where name = 'SWFUAT')
begin
print 'The UAT database (SWFUAT) does not exist...'
set noexec on;
end
go
use SWFUAT;
go
显示如下;
编译器不应该忽略“
use
”语句吗? 最佳答案
如果我正确理解你的问题,那么你想执行
use SWFUAT;
仅当
SWFUAT
数据库存在时。不幸的是因为这句话
描述 here 你不能简单地在你的情况下使用
SET NOEXEC
。为了实现你所需要的,你应该用例如这个替换你的代码
if not exists (select * from sys.databases where name = 'SWFUAT')
begin
print 'The UAT database (SWFUAT) does not exist...'
end else begin
use SWFUAT;
end
go
关于sql-server - 设置 NOEXEC ON 仍然执行 "USE"语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38319250/