【问题标题】:r: "$(fileName)" in a script called from sqlcmdr: "$(fileName)" 在从 sqlcmd 调用的脚本中
【发布时间】:2014-07-24 13:32:46
【问题描述】:

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

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

是否有解决方法来存档此内容?有什么解决办法吗?

【问题讨论】:

    标签: sql-server file-io cmd sqlcmd


    【解决方案1】:

    您可以将当前的RunScript.sql 脚本分解为单独的页眉和页脚 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      相关资源
      最近更新 更多