:setvar DatabaseName "MyDatabase"
GO
IF ('$(DatabaseName)' = '$' + '(DatabaseName)')
RAISERROR ('This script must be run in SQLCMD mode. Disconnecting.', 20, 1) WITH LOG
GO
-- The below is only run if SQLCMD is on, or the user lacks permission to raise fatal errors
IF @@ERROR != 0
SET NOEXEC ON
GO
PRINT 'You will only see this when SQLCMD mode is on'
-- Rest of script goes here
GO
SET NOEXEC OFF
GO
如前所述,没有办法。
然而,我们要做的一件事是在我们的脚本头中包含一个快速检查,以确定 SQLCMD 模式是否打开(如果没有,则终止脚本):
使用 Severity 20 是有原因的,它往往会立即终止连接,从而阻止更多的脚本代码运行,即使
GO
脚本后面有批处理终止符。不。
但是您始终可以在SQLCMD 模式下运行并在其中包含 T-SQL