執行 SSMA 主控台 (SybaseToSQL)

Microsoft 提供一組完善的指令檔選項,可執行及控制 SSMA 活動。 後幾節會詳細說明相同的內容。

指令檔命令

主控台應用程式會使用本節列舉的特定標準指令檔命令。

專案命令

專案命令會處理建立專案、開啟、儲存和結束專案。

create-new-project

此命令會建立新的 SSMA 專案。

  • project-folder 表示專案建立的資料夾。

  • project-name 表示專案的名稱。 {string}

  • overwrite-if-exists 選用屬性會指出是否應該覆寫現有的專案。 {boolean}

  • project-type: 選用屬性。 指出專案類型,即「sql-server-2005」專案或「sql-server-2008」專案或「sql-server-2012」專案或「sql-server-2014」專案或「sql-azure」專案。 預設值為「sql-server-2008」。

語法範例:

<create-new-project  
  
  project-folder="<project-folder>"  
  
  project-name="<project-name>"  
  
  overwrite-if-exists="<true/false>" (optional)  
  
   project-type="<sql-server-2008/sql-server-2005/sql-server-2012/sql-server-2014/sql-azure>"  
/>  

「overwrite-if-exists」屬性預設為 false

「project-type」屬性預設為 sql-server-2008

open-project

此命令會開啟專案。

  • project-folder 表示專案建立的資料夾。 如果指定的資料夾不存在,此命令就會失敗。 {string}

  • project-name 表示專案的名稱。 如果指定的專案不存在,此命令就會失敗。 {string}

語法範例:

<open-project  
  
  project-folder="<project-folder>"  
  
  project-name="<project-name>"  
  
/>  

注意

SSMA for SAP ASE 主控台應用程式支援回溯相容性。 您可以用其來開啟舊版 SSMA 所建立的專案。

save-project

此命令會儲存移轉專案。

語法範例:

<save-project/>  

close-project

此命令會關閉移轉專案。

語法範例:

<close-project   
  if-modified="<save/error/ignore>"   (optional)  
/>  

「if-modified」屬性是選用的,預設為 忽略

資料庫連線命令

資料庫連線命令可協助連線到資料庫。

注意

connect-source-database

此命令會執行與來源資料庫的連線,並載入來源資料庫的高階中繼資料,但不會載入所有中繼資料。

如果無法建立至來源的連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。

伺服器定義是從伺服器連接檔或指令檔的伺服器區段中,針對每個連接所定義的 name 屬性擷取。

語法範例:

<connect-source-database  server="<server-unique-name>"/>  

force-load-source/target-database

此命令會載入來源中繼資料,而且適合用於離線移轉專案。

如果無法建立至來源/目標的連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。

此命令需要一或多個 Metabase 節點作為命令列參數。

語法範例:

<force-load metabase="<source/target>" >  
  
  <metabase-object object-name="<object-name>"/>  
  
</force-load>  

reconnect-source-database

此命令會重新連線至來源資料庫,但不會載入任何中繼資料,與 connect-source-database 命令不同。

如果無法建立與來源的 (重新) 連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。

語法範例:

<reconnect-source-database  server="<server-unique-name>"/>  

connect-target-database

此命令會連線至目標 SQL Server 資料庫,並載入目標資料庫的高階中繼資料,但不會完全載入中繼資料。

如果無法建立至目標的連線,就會產生錯誤,而且主控台應用程式會停止進一步執行。

伺服器定義是從伺服器連接檔或指令檔的伺服器區段中,針對每個連接所定義的 name 屬性擷取。

語法範例:

<connect-target-database  server="<server-unique-name>"/>  

reconnect-target-database

此命令會重新連線至目標資料庫,但不會載入任何中繼資料,與 connect-target-database 命令不同。

如果無法建立至目標的 (重新) 連線,就會產生錯誤,主控台應用程式會停止進一步執行。

語法範例:

<reconnect-target-database  server="<server-unique-name>"/>  

報表命令

報告命令會針對各種 SSMA 主控台活動的效能產生報告。

generate-assessment-report

此命令會在來源資料庫上產生評定報告。

如果在執行此命令之前未執行來源資料庫連線,則會產生錯誤,而且主控台應用程式會結束。

在命令執行期間無法連線到來源資料庫伺服器,也會導致終止主控台應用程式。

  • conversion-report-folder: 指定可儲存評定報告的資料夾。 (選用屬性)

  • object-name: 指定考慮評定報告產生的物件 (支援個別物件名稱或群組物件名稱)。

  • object-type: 指定 object-name 屬性中呼叫的物件類型 (如果指定物件類別目錄,則物件類型會是 「category」)。

  • conversion-report-overwrite: 指定是否在評定報告資料夾已經存在時覆寫。

    預設值:false。 (選用屬性)

  • write-summary-report-to: 指定產生報告的路徑。

    如果只提及資料夾路徑,則會依名稱 AssessmentReport<n>.XML 建立檔案。 (選用屬性)

    報告建立有兩個更進一步的子類別:

    • report-errors (=「true/false」,預設值為「false」 (選用屬性))

    • verbose (=「true/false」,預設值為「false」 (選用屬性))

語法範例:

<generate-assessment-report  
  
  object-name="<object-name>"  
  
  object-type="<object-category>"  
  
  write-summary-report-to="<file-name/folder-name>"             (optional)  
  
  verbose="<true/false>"                       (optional)  
  
  report-errors="<true/false>"                 (optional)  
  
  assessment-report-folder="<folder-name>"          (optional)  
  
  conversion-report-overwrite="<true/false>"   (optional)  
  
/>  

<generate-assessment-report  
  
  assessment-report-folder="<folder-name>"            (optional)  
  
  conversion-report-overwrite="<true/false>"     (optional)  
  
>  
<metabase-object object-name="<object-name>"  
  
        object-type="<object-category>"/>  
  
</generate-assessment-report>  

移轉命令

移轉命令會將目標資料庫結構描述轉換成來源結構描述,並將資料移轉至目標伺服器。

convert-schema

此命令會執行從來源到目標結構描述的結構描述轉換。

如果在執行此命令之前未執行來源或目標資料庫連線,或在命令執行期間與來源或目標資料庫伺服器的連線失敗,則會產生錯誤並結束主控台應用程式。

  • conversion-report-folder: 指定可儲存評定報告的資料夾。 (選用屬性)

  • object-name: 指定考慮轉換結構描述的來源物件 (支援個別物件名稱或群組物件名稱)。

  • object-type: 指定 object-name 屬性中呼叫的物件類型 (如果指定物件類別目錄,則物件類型會是 「category」)。

  • conversion-report-overwrite: 指定是否在評定報告資料夾已經存在時覆寫。

    預設值:false。 (選用屬性)

  • write-summary-report-to: 指定產生摘要報告的路徑。

    如果只提及資料夾路徑,則會依名稱 SchemaConversionReport<n>.XML 建立檔案。 (選用屬性)

    報告建立有兩個更進一步的子類別:

    • report-errors (=「true/false」,預設值為「false」 (選用屬性))

    • verbose (=「true/false」,預設值為「false」 (選用屬性))

語法範例:

<convert-schema  
  
  object-name="<object-name>"  
  
  object-type="<object-category>"  
  write-summary-report-to="<file-name/folder-name>"     (optional)  
  
  verbose="<true/false>"                          (optional)  
  
  report-errors="<true/false>"                    (optional)  
  
  conversion-report-folder="<folder-name>"             (optional)  
  
  conversion-report-overwrite="<true/false>"      (optional)  
  
/>  

<convert-schema  
  
  conversion-report-folder="<folder-name>"         (optional)  
  
  conversion-report-overwrite="<true/false>"> (optional)  
  
  <metabase-object object-name="<object-name>"  
  
    object-type="<object-category>"/>  
  
</convert-schema>  

migrate-data

此命令會將來源資料移轉至目標。

  • object-name: 指定考慮移轉資料的來源物件 (支援個別物件名稱或群組物件名稱)。

  • object-type: 指定 object-name 屬性中呼叫的物件類型 (如果指定物件類別目錄,則物件類型會是「category」)。

  • write-summary-report-to: 指定產生報告的路徑。

    如果只提及資料夾路徑,則會依名稱 DataMigrationReport<n>.XML 建立檔案。 (選用屬性)

    報告建立有兩個更進一步的子類別:

    • report-errors (=「true/false」,預設值為「false」 (選用屬性))

    • verbose (=「true/false」,預設值為「false」 (選用屬性))

語法範例:

<migrate-data  
  
  write-summary-report-to="<file-name/folder-name>"  
  
  report-errors="<true/false>" verbose="<true/false>">  
  
    <metabase-object object-name="<object-name>"/>  
  
    <metabase-object object-name="<object-name>"/>  
  
    <metabase-object object-name="<object-name>"/>  
  
    <data-migration-connection  
  
      source-use-last-used="true"/source-server="<server-unique-name>"  
  
      target-use-last-used="true"/target-server="<server-unique-name>"/>  
  
</migrate-data>  

<migrate-data  
  
  object-name="<object-name>"  
  
  object-type="<object-category>"  
  
  write-summary-report-to="<file-name/folder-name>"  
  
  report-errors="<true/false>" verbose="<true/false>"/>  

移轉準備命令

移轉準備命令會起始來源與目標資料庫之間的結構描述對應。

注意

移轉命令的預設主控台輸出設定是「完整」輸出報告,沒有詳細的錯誤報告:只有來源物件樹狀目錄根節點的摘要。

map-schema

此命令提供來源資料庫的結構描述對應至目標結構描述。

  • source-schema 指定要移轉的來源結構描述。

  • sql-server-schema 指定來源結構描述要移轉至的目標結構描述。

語法範例:

<map-schema source-schema="<source-schema>"  
  
sql-server-schema="<target-schema>"/>  

管理性命令

管理性命令可協助同步處理目標資料庫物件與來源資料庫。

注意

移轉命令的預設主控台輸出設定是「完整」輸出報告,沒有詳細的錯誤報告:只有來源物件樹狀目錄根節點的摘要。

synchronize-target

此命令會同步處理目標物件與目標資料庫。

如果針對來源資料庫執行此命令,就會發生錯誤。

如果在執行此命令之前未執行目標資料庫連線,或在命令執行期間與目標資料庫伺服器的連線失敗,則會產生錯誤並結束主控台應用程式。

  • object-name: 指定考慮要與目標資料庫同步處理的目標物件 (支援個別物件名稱或群組物件名稱)。

  • object-type: 指定 object-name 屬性中呼叫的物件類型 (如果指定物件類別目錄,則物件類型會是「category」)。

  • on-error: 指定是否要將同步處理錯誤指定為警告或錯誤。 可用的 on-error 選項:

    • report-total-as-warning

    • report-each-as-warning

    • fail-script

  • report-errors-to: 指定同步處理作業的錯誤報告位置 (選用屬性)。 如果只指定資料夾路徑,則會以名稱 TargetSynchronizationReport.XML 建立檔案。

語法範例:

<synchronize-target  
  
object-name="<object-name>"  
  
on-error="<report-total-as-warning/  
  
report-each-as-warning/  
  
fail-script>" (optional)  
  
  report-errors-to="<file-name/folder-name>"        (optional)  
  
/>  

<synchronize-target  
  
  object-name="<object-name>"  
  
  object-type="<object-category>"/>  

<synchronize-target>  
  
  <metabase-object object-name="<object-name>"/>  
  
  <metabase-object object-name="<object-name>"/>  
  
  <metabase-object object-name="<object-name>"/>  
  
</synchronize-target>  

refresh-from-database

此命令會從資料庫重新整理來源物件。

如果針對目標資料庫執行此命令,會產生錯誤。

此命令需要一或多個 Metabase 節點作為命令列參數。

  • object-name: 指定考慮從來源資料庫重新整理的來源物件 (支援個別物件名稱或群組物件名稱)。

  • object-type: 指定 object-name 屬性中指定的物件類型 (如果指定物件類別目錄,則物件類型會是「category」)。

  • on-error: 指定是否要將重新整理錯誤呼叫為警告或錯誤。 可用的 on-error 選項:

    • report-total-as-warning

    • report-each-as-warning

    • fail-script

  • report-errors-to: 指定重新整理作業的錯誤報告位置 (選用屬性)。 如果只指定資料夾路徑,則會以名稱 SourceDBRefreshReport.XML 建立檔案。

語法範例:

<refresh-from-database  
  
  object-name="<object-name>"  
  
  on-error="<report-total-as-warning/  
  
             report-each-as-warning/  
  
             fail-script>"              (optional)  
  
  report-errors-to="<file-name/folder-name>"        (optional)  
  
/>  

<refresh-from-database  
  
  object-name="<object-name>"  
  
  object-type="<object-category>" />  

<refresh-from-database>  
  
  <metabase-object object-name="<object-name>"/>  
  
</refresh-from-database>  

指令碼產生命令

指令碼產生命令會執行雙重工作:它們可協助將主控台輸出儲存在指令檔中,並根據您指定的參數,將 T-SQL 輸出記錄到主控台或檔案。

save-as-script

此命令是用來將物件的指令碼儲存到 metabase=target 時提及的檔案。 這是同步處理命令的替代方案,我們取得指令碼並在目標資料庫上執行相同命令。

此命令需要一或多個 Metabase 節點作為命令列參數。

  • object-name: 指定其指令碼要儲存的物件 (支援個別物件名稱或組物件名稱)。

  • object-type: 指定 object-name 屬性中呼叫的物件類型 (如果指定物件類別目錄,則物件類型會是 「category」)。

  • metabase: 指定它是來源或目標 Metabase。

  • destination: 指定指令碼必須儲存的路徑或資料夾。 如果未指定檔案名,則會提供格式為 (object_name 屬性值) .out 的檔案名。

  • overwrite: 如果為 true,則會在其存在時覆寫相同的檔案名。 它可以包括該值 (true/false)。

語法範例:

<save-as-script  
  
  metabase="<source/target>"  
  
  object-name="<object-name>"  
  
  object-type="<object-category>"  
  
  destination="<file-name/folder-name>"  
  
  overwrite="<true/false>"   (optional)  
  
/>  

<save-as-script  
  
  metabase="<source/target>"  
  
  destination="<file-name/folder-name>"  
  
    <metabase-object object-name="<object-name>"  
  
                     object-type="<object-category>"/>  
  
</save-as-script>  

convert-sql-statement

此命令會轉換 SQL 陳述式。

  • context 指定結構描述名稱。

  • destination 指定輸出是否應該處存在檔案中。

    如果未指定這個屬性,則會在主控台上顯示轉換的 T-SQL 陳述式。 (選用屬性)

  • conversion-report-folder 指定可儲存評定報告的資料夾。 (選用屬性)

  • conversion-report-overwrite 指定是否在評定報告資料夾已經存在時覆寫。

    預設值:false。 (選用屬性)

  • write-converted-sql-to 會指定要儲存已轉換 T-SQL 的檔案 (或) 資料夾路徑。 指定資料夾路徑與 sql-files 屬性時,每個來源檔案都有在指定資料夾下建立的對應目標 T-SQL 檔案。 指定資料夾路徑與 sql 屬性時,轉換後的 T-SQL 會寫入指定資料夾下名為 Result.out 的檔案。

  • sql 指定要轉換的 Sybase sql 陳述式,可以使用「;」分隔一或多個陳述式

  • sql-files 指定必須轉換成 T-SQL 程式碼之 sql 檔案的路徑。

  • write-summary-report-to 指定產生摘要報告的路徑。 如果只提及資料夾路徑,則會以名稱 ConvertSQLReport.XML 建立檔案。 (選用屬性)

    摘要報告建立有兩個更進一步的子類別,也就是:

    • report-errors (=「true/false」,預設值為「false」 (選用屬性))。

    • verbose (=「true/false」,預設值為「false」 (選用屬性))。

此命令需要一或多個 Metabase 節點作為命令列參數。

語法範例:

<convert-sql-statement  
  
       context="<database-name>.<schema-name>"  
  
        conversion-report-folder="<folder-name>"  
  
        conversion-report-overwrite="<true/false>"  
  
        write-summary-report-to="<file-name/folder-name>"   (optional)  
  
        verbose="<true/false>"   (optional)  
  
        report-errors="<true/false>"   (optional)  
  
        destination="<stdout/file>"   (optional)  
  
        write-converted-sql-to ="<file-name/folder-name>"  
  
        sql="SELECT 1 FROM DUAL;">  
  
    <output-window suppress-messages="<true/false>" />  
  
</convert-sql-statement>  

<convert-sql-statement  
  
         context="<database-name>.<schema-name>"  
  
         conversion-report-folder="<folder-name>"  
  
         conversion-report-overwrite="<true/false>"  
  
         write-summary-report-to="<file-name/folder-name>"   (optional)  
  
         verbose="<true/false>"   (optional)  
  
         report-errors="<true/false>"   (optional)  
  
         destination="<stdout/file>"   (optional)  
  
         write-converted-sql-to ="<file-name/folder-name>"  
  
         sql-files="<folder-name>\*.sql"  
  
/>  

<convert-sql-statement  
  
         context="<database-name>.<schema-name>"  
  
         conversion-report-folder="<folder-name>"  
  
         conversion-report-overwrite="<true/false>"  
  
         sql-files="<folder-name>\*.sql"  
  
/>  

下一步

如需命令列選項的資訊,請參閱 SSMA 主控台中的命令列選項 (AccessToSQL)

如需範例主控台指令檔的資訊,請參閱使用範例主控台指令檔 (SybaseToSQL)

下一個步驟取決於您的專案需求: