2009-09-07 70 views
0

在Oracle中,您可以在脚本中使用VAR_NAME,然后脚本会在运行时询问您的值。sql server - 在运行时设置变量

在SQLSERVER可以使用$(VAR_NAME),并使用引用属性文件:

:r c:/TEMP/sqlserver.properties 

And in the property file you have something like: 

    :setvar VAR_NAME_some_value 

你能做到& & VAR_NAME相当于使该脚本会询问你的价值,当你运行它,而不是具有在脚本中预定义的值。

回答

1

如果我理解正确的话,你在谈论variable substitution with the SQLCMD utility

我看不到SQLCMD支持您描述的行为。

另一种方法是利用SQLCMD将替换系统或用户环境变量的值(参见上面的链接),并创建一个包装CMD脚本,该脚本使用SET with the /P flag提示用户输入变量值。

0

没有什么像这样的SQL服务器,你应该预先定义的所有参数值使用它们,这样才:

DECLARE @i SMALLINT 
SET @i = 1 
0

弹出窗体并询问参数的问题是,您通常需要更多地控制窗体的属性,即使对于管理脚本也是如此。我会在Powershell或Python脚本中使用SQLCMD中的变量替换,以便为运行该脚本的人提供更好,更有用的表单。这将会产生非常强大的组合。

在SSMS中,您可以使用模板变量替换完成很多工作,但这只会涉及到制定正确的SQL来执行。那么你就必须按下按钮。在开发环境之外它会有点笨重!