r:从sqlcmd调用的脚本中的“$(fileName)”

时间:2014-07-24 13:32:46

标签: sql-server file-io cmd sqlcmd

我正在尝试创建一个脚本,只是为了运行其他脚本,并在成功或失败的情况下做一些额外的事情。

您在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

是否有解决方法存档?有什么想法可以解决吗?

1 个答案:

答案 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
  • / V对副本进行验证
  • / Y禁止提示确认覆盖现有文件

您可以按如下方式运行它:

RunSQL.CMD someFileName.sql