[英]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.