分享方式:


執行 SSMA 主控台 (AccessToSQL)

Microsoft 提供一組完善的指令檔和命令列選項,可執行及控制 SQL Server 移轉小幫手 (SSMA) 活動。 後幾節會詳細說明相同的內容。

專案指令檔命令

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

create-new-project

建立新的 SSMA 專案。

屬性 預設值 說明 類型
project-folder 表示專案建立的資料夾。 String
project-name 表示專案的名稱。 String
overwrite-if-exists false 選用屬性會指出是否應該覆寫現有的專案。 布林值
project-type sql-server-2008 選用屬性。 可用於 project-type 的格式選項如下:

sql-server-2005
sql-server-2008
sql-server-2012
sql-server-2014
sql-server-2016
sql-azure
String

語法範例

<create-new-project
  project-folder="<project-folder>"
  project-name="<project-name>"
  overwrite-if-exists="<true | false>"
  project-type="<project-type>"
/>

open-project

開啟現有的專案。

屬性 預設值 說明 類型
project-folder 表示專案建立的資料夾。 如果指定的資料夾不存在,此命令就會失敗。 String
project-name 表示專案的名稱。 如果指定的專案不存在,此命令就會失敗。 String

語法範例

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

注意

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

save-project

儲存移轉專案。

語法範例

<save-project/>

close-project

關閉移轉專案。

屬性 預設值 說明 類型
if-modified ignore 指定行為的選擇性屬性。 可能的值是︰saveerrorignore String

語法範例

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

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

資料庫連結指令檔命令

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

主控台不支援 UI 的 [瀏覽] 功能。

連線到 SQL Azure 時,不適用 windows-authenticationport參數。

如需本節的詳細資訊,請參閱建立指令檔 (AccessToSQL)

connect-source-database

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

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

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

語法範例

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

load-access-database

用來載入存取資料庫檔案。

屬性 預設值 說明 類型
database-file 指定存取資料庫的路徑。 String

語法範例

<load-access-database  database-file="<Access-database>"/>

- 或者 -

<load-access-database>
  <access-database database-file="<Access-database1>"/>
  <access-database database-file="<Access-database2>"/>
</load-access-database>

force-load 來源或目標資料庫

載入來源中繼資料。 適合用於離線處理移轉專案。

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

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

屬性 預設值 說明 類型
object-name 指定物件的名稱。 String
metabase 指定存取資料庫的路徑。 可能的值為︰sourcetarget String

語法範例

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

- 或者 -

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

reconnect-source-database

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

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

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

語法範例

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

connect-target-database

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

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

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

語法範例

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

reconnect-target-database

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

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

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

語法範例

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

報告指令檔命令

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

generate-assessment-report

在來源資料庫上產生評定報告。

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

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

指令碼

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

  • object-name︰指定考慮評量報告產生的物件 (其可有個別物件名稱或群組物件名稱)。

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

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

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

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

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

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

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

語法範例

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

- 或者 -

<generate-assessment-report
  conversion-report-folder="<folder>"            (optional)
  conversion-report-overwrite="<true/false>"     (optional)
>
    <metabase-object object-name="ssma.Procedures"
        object-type="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="ssma.Procedures"
  object-type="category"
  write-summary-report-to="<filepath/folder>"     (optional)
  verbose="<true/false>"                          (optional)
  report-errors="<true/false>"                    (optional)
  conversion-report-folder="<folder>"             (optional)
  conversion-report-overwrite="<true/false>"      (optional)
/>

- 或者 -

<convert-schema
  conversion-report-folder="<folder>"         (optional)
  conversion-report-overwrite="<true/false>"  (optional)
>
  <metabase-object object-name="ssma.Procedures"
    object-type="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="<filepath/folder>"
  report-errors="true" verbose="true">
    <metabase-object object-name="ssma.TT1"/>
    <metabase-object object-name="ssma.TT2"/>
    <metabase-object object-name="ssma.TT3"/>
    <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="ssma.Tables"
  object-type="category"
  write-summary-report-to="<filepath/folder>"
  report-errors="true" verbose="true"/>

此命令會將來源 (Access) 資料表連結到目標資料表。

指令碼

語法範例

<link-tables>
  <metabase-object object-name="AccessDatabase.table1" object-type="Tables"/>
  <metabase-object object-name="AccessDatabase.table2" object-type="Tables"/>
</link-tables>

- 或者 -

<link-tables>
  <metabase-object object-name="AccessDatabase.Tables" object-type="category"/>
</link-tables>

此命令會取消來源 (Access) 資料表與目標資料表的連結。

指令碼

語法範例:

<unlink-tables>
  <metabase-object object-name="AccessDatabase.table1" object-type="Tables"/>
  <metabase-object object-name="AccessDatabase.table2" object-type="Tables"/>
</unlink-tables>

- 或者 -

<unlink-tables>
  <metabase-object object-name="AccessDatabase.Tables" object-type="category"/>
</unlink-tables>

移轉準備指令檔命令

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

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="ots_triggers.dbo"
  on-error="<report-total-as-warning|
             report-each-as-warning|
             fail-script>"              (optional)
  report-errors-to="<file-name>"        (optional)
/>

- 或者 -

<synchronize-target
  object-name="ssma.dbo.Procedures"
  object-type="category"/>

- 或者 -

<synchronize-target>
  <metabase-object object-name="ssma.dbo.TT1"/>
  <metabase-object object-name="ssma.dbo.TT2"/>
  <metabase-object object-name="ssma.dbo.TT3"/>
</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="ssma.TT1"
  on-error="<report-total-as-warning|
             report-each-as-warning|
             fail-script>"              (optional)
  report-errors-to="<file-name>"        (optional)
/>

- 或者 -

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

- 或者 -

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

指令碼產生指令檔命令

指令碼產生命令有助於將主控台輸出儲存在指令檔中。

save-as-script

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

指令碼

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

  • object-name︰指定要儲存其指令碼的物件。 (其可有個別物件名稱或群組物件名稱)。

  • object-type:指定 屬性中指定的 object-name 物件類型。 如果指定物件類別目錄,則物件類型為 category

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

  • destination︰指定指令碼必須儲存的路徑或資料夾。 如果未指定檔名,則格式為 (object_name attribute value) 的檔名。

  • overwrite︰如果為 true,則會覆寫相同的檔案名稱。 可以有 (true/false) 值。

語法範例

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

- 或者 -

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