在Oracle中,您可以在脚本中使用&& VAR_NAME,然后脚本会在您运行时询问您该值。
在SQLSERVER中,您可以使用$(VAR_NAME)并使用以下内容引用属性文件:
:r c:/TEMP/sqlserver.properties
And in the property file you have something like:
:setvar VAR_NAME_some_value
您是否可以执行&&& VAR_NAME等效操作,以便脚本在您运行时询问您的值,而不是在脚本中预定义值。
答案 0 :(得分:1)
如果我理解正确,那你就是在谈论variable substitution with the SQLCMD utility。
我没有看到SQLCMD支持您描述的行为。
另一种方法是利用SQLCMD将替换系统或用户环境变量的值(参见上面的链接)这一事实,并创建一个包装器CMD脚本,该脚本使用{{提示用户输入变量值。 3}}
答案 1 :(得分:0)
在这样的sql server中没有任何内容,你应该在使用之前预定义所有参数值,如下所示:
DECLARE @i SMALLINT
SET @i = 1
答案 2 :(得分:0)
弹出一个表单并询问您参数的问题在于您通常希望更多地控制表单的性质,即使对于管理脚本也是如此。我将在Powershell或Python脚本中使用SQLCMD中的变量替换,这样您就可以为运行脚本的人提供更好,更有帮助的表单。这将成为一个非常强大的组合。
你可以在SSMS中使用模板变量替换做很多事情,但这只能制定正确的SQL来执行。然后你必须按下按钮。在开发环境之外会有点笨拙!