繁体   English   中英

路径中的SQLCMD变量

[英]SQLCMD variable in path

我正在使用一些我希望可重用的SQL脚本,因此我需要使用一些变量。

我有一个使用sqlcmd运行sql脚本的bat脚本

sqlcmd -S <SERVER> -v PROJECT="<PROJECTNAME>" -i .\start.sql

在start.sql脚本中,我执行另一个sql脚本,如下所示:

:r .\<PROJECTNAME>\init.sql

因此,我已经硬编码了变量的值,并且效果很好。 我想使用变量本身,但无法正常工作。

:r .\$(PROJECT)\init.sql

最后一行是我认为可行的内容。 通过执行以下操作,我测试了打印出变量PROJECT中的值:

PRINT '$(PROJECT)'

这给了我变量的值。

希望任何人都可以帮助我使用变量来执行文件夹中的脚本。

提前致谢。

编辑:打印$(PROJECT)给出以下错误消息:在这种情况下不允许使用名称“ XXX”。 有效表达式是常量,常量表达式和(在某些情况下)变量。 不允许使用列名。

XXX =变量的值。

我做了一个小实验,因为我知道我现在已经设法获得了与此类似的语法来为我工作。 我发现,如果我复制了您所做的工作,则会出现以下错误:

发生致命的脚本错误。 在为“:r”命令指定的路径中找不到目录。

如果相反,我将整个路径放入变量中-它起作用。 因此,尝试将您的.sql文件更改为此:

:r $(PROJECT_FILE_NAME)

然后像这样从SQLCMD调用它:

sqlcmd -S <SERVER> -v PROJECT_FILE_NAME=".\<PROJECTNAME>\init.sql" -i .\start.sql

当我采用这种方法时,它运行文件init.sql时没有错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM