【问题标题】:Ant <Sql> and <exec> sqlcmd - Different OutputsAnt <Sql> 和 <exec> sqlcmd - 不同的输出
【发布时间】:2012-12-07 12:29:52
【问题描述】:

我有一个使用 ant 执行的 .sql 文件,当我使用标记执行它时,我收到了与调用“sqlcmd”时不同的输出。

sql标签输出:

  [sql] Executing resource: C:\SqlTesting\TestScriptDependencies\Executor.sql
  [sql] Failed to execute:  Use Library Exec CallSelectSP
  [sql] com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name'Libraty.dbo.libraryDocumentType'.
  [sql] 0 of 1 SQL statements executed successfully

执行标签输出:

 [exec] First SP
 [exec] Msg 208, Level 16, State 1, Server MyPC-PC, Procedure getFirstDocumentType, Line 3
 [exec] Invalid object name 'Libraty.dbo.libraryDocumentType'.
 [exec] Second SP
 [exec] Msg 208, Level 16, State 1, Server MyPC-PC, Procedure badSP, Line 3
 [exec] Invalid object name 'Libraty.dbo.libraryDocumentType'.

这是 .sql 文件。

Print 'First SP'
Exec getFirstDocumentType
Print 'Second SP'
Exec badSP
Go

不知道是不是 SQL 标记重现与 EXEC 标记相同的输出的一种方式。

谢谢。

【问题讨论】:

    标签: sql sql-server database ant sqlcmd


    【解决方案1】:

    看起来第一个是通过 jdbc 将整个脚本作为一个批次提交。而第二个似乎是通过 sqlcmd 发送每个 sql 语句 - 因此打印语句成功(并导致同步输出 - 打印并不总是保证 - raiserror(str, 10, 1) with nowait; 是及时消息传递的唯一保证)并且两者都是 sp尝试调用,每个调用都会产生自己的 (sql) 错误。

    【讨论】:

      猜你喜欢
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2019-03-20
      • 2012-03-08
      相关资源
      最近更新 更多