Redgate SQLCOmpare 6命令行=>返回代码为“0”,即使DB是相同的

时间:2011-10-13 15:04:00

标签: command-line sqlcompare

我们有一个用于包装自动化的NANT脚本。 如果使用SQLCompare命令行工具更改结构和数据,我们还会比较以前的DB和当前DB。

即使我比较相同的数据库,我也无法获得退出代码“63”,这意味着“两个数据库是相同的”。我总是退出代码“0”。 如何控制DB是否相同?

SQLC Compare的NANT脚本:

*<property name="remcom.machine" value="server"/>
    <property name="remcom.user" value="${server.user.administrator}"/>
    <property name="remcom.pwd" value="${server.password.administrator}"/>
    <property name="remcom.workdir" value="${sqlcompare.dir}"/>
    <property name="remcom.command" 
              value="&quot;${sqlcompare.file} /s1:${compare.db.instance}        /u1:${compare.db.user} /p1:${compare.db.pwd} /db1:${db.current} /s2:${compare.db.instance} /u2:${compare.db.user} /p2:${compare.db.pwd} /db2:${db.previous} /f /q /sf:e:\redgateReports\${script.file} /r:e:\redgateReports\${report.file} /rt:Interactive /options:IgnoreWhiteSpace,IgnoreFillFactor,IgnoreFileGroups,IgnoreUserProperties,IgnoreWithElementOrder,ForceColumnOrder,IgnorePermissions,NoSQLPlumbing&quot;"/>
    <call target="RemoteCommand"/>
    <property name="sqlcompare.exitCode" value="${remcom.result}"/>*

这是我控制退出代码的代码:

<property name="compare.failed" value="${sqlcompare.exitCode != '63'}"/>
    <if test="${property::exists('failIfDifferent') and failIfDifferent == 'true'}">
      <fail if="${compare.failed}" message="Exit code is NOT 63.  DB stuctures [  ${db.current} and ${db.previous} ] are NOT identical. see report files in server: ${report.file} " />
    </if>

1 个答案:

答案 0 :(得分:0)

感谢您的回复。我在本地计算机上测试了我的sqlcompare命令。它没有给我“63”代码。然后我用sqlcompare创建一个比较项目,并在命令行选项列表中使用相同的选项 然后它工作正常,现在我将在我们的NANT脚本和服务器中测试它。

最诚挚的问候。

Ali Bulut