我正在尝试创建一个脚本,只是为了运行其他脚本,并在成功或失败的情况下做一些额外的事情。
您在this link上有完整的代码,只是为了清楚我想要实现的目标。
基本上我想:
-- DO SOME STUFF HERE
r: "$(fileName)"
-- MORE STUFF HERE
以这种方式从sqlcmd
调用它:
sqlcmd -i "RunScript.sql" -v fileName="someFileName.sql" -s server -d database
但我不能,我收到以下错误:
消息102,级别15,状态1,服务器SERVER,第19行语法不正确 靠近'someFileName.sql'。
所以,似乎小r:
不能与他身边的参数一起使用。
为了澄清,someFileName.sql
不在SQL Server中,而是在我的机器中,所以我无法使用this way来读取文件。事实上,我只是tried it later。
是否有解决方法存档?有什么想法可以解决吗?
答案 0 :(得分:1)
您可以将当前的RunScript.sql
脚本分解为单独的页眉和页脚SQL脚本,并将它们与中间的SQL脚本连接在一起,该脚本由CMD脚本的输入参数表示。例如:
RunSQL.CMD
包含:
@ECHO OFF
COPY /V /Y RunScriptHeader.sql + %1 + RunScriptFooter.sql RunScriptTemp.sql
SQLCMD -i "RunScriptTemp.sql" -s server -d database
您可以按如下方式运行它:
RunSQL.CMD someFileName.sql