有没有办法判断是否使用 SQLCMD 在命令行上定义了变量?
这是我的命令行:
sqlcmd -vDB="EduC_E100" -i"Z:\SQL Common\Admin\ProdToTest_DB.sql"
在ProdToTest_DB.sql 中,我想设置某种条件 IF 来检查变量是否不存在,如果不存在则定义它。
如果不是 $(DB) :setvar DB "C_Q200" 结尾
我想允许脚本从命令行和 SSMS 内部运行。
提前致谢。
有没有办法判断是否使用 SQLCMD 在命令行上定义了变量?
这是我的命令行:
sqlcmd -vDB="EduC_E100" -i"Z:\SQL Common\Admin\ProdToTest_DB.sql"
在ProdToTest_DB.sql 中,我想设置某种条件 IF 来检查变量是否不存在,如果不存在则定义它。
如果不是 $(DB) :setvar DB "C_Q200" 结尾
我想允许脚本从命令行和 SSMS 内部运行。
提前致谢。
我在许多命令行变量相关脚本中使用了以下例程的变体。这里,“DataPath”是必需的值。
DECLARE @Test_SQLCMD varchar(100)
-- Confirm that SQLCMD values have been set (assume that if 1 is, all are)
SET @Test_SQLCMD = '$(DataPath)'
IF reverse(@Test_SQLCMD) = ')htaPataD($'
-- SQLCMD variables have not been set, crash and burn!
RAISERROR('This script must be called with the required SQLCMD variables!', 20, 1) with log
您可以使用 try catch 语句完成您想要的。只需在 try 中访问您的变量之一,如果这会产生错误,请在 catch 中定义它们。