Cloud SQL 預存程序

本節說明 Cloud SQL 執行個體的預存程序。

預存程序包含可重複使用的 SQL 程式碼。

如要執行預存程序,請使用 EXEC 指令,並替換下列變數:

  • procedure_name 是預存程序的名稱。
  • database_name 是要執行程序的資料庫名稱。
  • schema_name 是要執行程序的結構定義名稱。
EXEC database_name.schema_name.procedure_name @param1, @param2;
詳情請參閱「EXECUTE (Transact-SQL)」參考資料頁面。

如要建立自己的預存程序,請參閱「建立預存程序」。

SQL Server 適用的 Cloud SQL 預存程序

用於大量插入的預存程序

如要瞭解如何大量插入資料,請參閱「使用大量插入功能匯入資料」。

msdb.dbo.gcloudsql_bulk_insert

語法

EXEC msdb.dbo.gcloudsql_bulk_insert @database @schema @object @file ...

說明

這個儲存程序與 BULK INSERT 指令的參數和行為類似。

這個預存程序會從儲存在 Cloud Storage bucket 中的檔案,將資料匯入 Cloud SQL 執行個體。這項工具會使用 Cloud Storage 可互通的 APIHMAC 金鑰,驗證 Cloud Storage bucket 的存取權。

這個預存程序具有下列參數:

參數 類型 說明
@database SYSNAME 指定要匯入資料的目標資料庫名稱。
@schema SYSNAME 指定資料表所屬的結構定義名稱。
@object NVARCHAR 指定要插入資料的資料表名稱。
@file NVARCHAR 指定 Cloud Storage 值區中匯入檔案的路徑。

路徑必須採用下列格式:

 s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH
 

取代下列項目:

  • BUCKET_NAME:指定 Cloud Storage bucket 名稱。
  • FILE_PATH:指定儲存在 Cloud Storage 值區中的檔案路徑。
@batchsize INT 指定批次中的資料列數。
@checkconstraints BIT 指定必須檢查目標資料表的所有限制。
@codepage NVARCHAR 指定檔案中資料的代碼頁。 RAW 是預設選項,也是唯一選項。
@datafiletype NVARCHAR 指定大量插入檔案類型。
@datasource NVARCHAR 指定要從中匯入資料的外部資料來源名稱。
@errorfile NVARCHAR 指定用於收集格式錯誤列的檔案路徑。

路徑必須採用下列格式:

 s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH
 

取代下列項目:

  • BUCKET_NAME:指定 Cloud Storage bucket 名稱。
  • FILE_PATH:指定儲存在 Cloud Storage 值區中的檔案路徑。

此外,Cloud SQL 會建立副檔名為 .ERROR.txt 的檔案。這個檔案會參照錯誤檔案中的每一列,並提供錯誤診斷資訊。

@errorfiledatasource NVARCHAR 指定要建立錯誤檔案的外部資料來源名稱。
@firstrow INT 指定要載入的第一列的數字 ID。
@firetriggers BIT 表示在大量插入作業期間,系統會執行目標資料表上定義的任何插入觸發程序。
@formatfiledatasource NVARCHAR 指定要從哪個外部資料來源載入格式檔案。
@keepidentity BIT 指定是否要使用匯入檔案中的身分資料做為身分資料欄。值為 0 (表示 false) 和 1 (表示 true)。
@keepnulls BIT 指定在大量匯入作業期間,空資料欄是否應保留空值,而不是插入資料欄的任何預設值。值為 0 (表示 false) 和 1 (表示 true)。
@kilobytesperbatch INT 指定每個批次的資料量 (以 KB 為單位)。
@lastrow INT 指定要載入的最後一列的數字 ID。
@maxerrors INT 指定允許的錯誤數量,Cloud SQL 會在錯誤數量超過上限時取消作業。
@ordercolumnsjson NVARCHAR 以 JSON 格式指定排序順序和資料欄。例如:
[{"name": "COLUMN_NAME","order": "ORDER"},{"name": "COLUMN_NAME","order": "ORDER"}]

取代下列項目:

  • COLUMN_NAME:資料欄的名稱。
  • ORDER:排序順序。這個參數的值可以是 asc (遞增) 或 desc (遞減)。
@rowsperbatch INT 指定每個批次的資料列數。

如要進一步瞭解如何選取批次大小,請參閱「效能考量」一節。

@tablock BIT 指定在大量插入作業期間取得資料表鎖定。
@format NVARCHAR 指定檔案格式。使用 CSV 做為這個參數的值。
@fieldquote NVARCHAR 指定要在 CSV 檔案中做為引用字元的字元。

如未指定值,Cloud SQL 會使用 " 做為預設值。

@formatfile NVARCHAR 指定 Cloud Storage 中檔案的路徑,該檔案會說明要匯入的資料格式。

路徑應採用下列格式:

 s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH
 

取代下列項目:

  • BUCKET_NAME:指定 Cloud Storage bucket 名稱。
  • FILE_PATH:指定儲存在 Cloud Storage 值區中的檔案路徑。
@fieldterminator NVARCHAR 指定 char 和 widechar 資料檔案的欄位終止符。
@rowterminator NVARCHAR 指定 char 和 widechar 資料檔案的資料列終止符。

SQL Server 稽核功能的預存程序

如要瞭解如何使用 SQL Server 稽核功能,請參閱「SQL Server 資料庫稽核」。

msdb.dbo.gcloudsql_fn_get_audit_file

語法

msdb.dbo.gcloudsql_fn_get_audit_file

說明

從 SQL Server 稽核功能建立的稽核檔案中擷取資料。

這個預存程序接受的參數與 sys.fn_get_audit_file 函式相同。如要進一步瞭解 msdb.dbo.gcloudsql_fn_get_audit_file,請參閱該函式的說明文件

變更資料擷取 (CDC) 的預存程序

如要進一步瞭解 CDC,請參閱啟用變更資料擷取

msdb.dbo.gcloudsql_cdc_enable_db

語法

exec msdb.dbo.gcloudsql_cdc_enable_db databaseName

說明

為資料庫啟用變更資料擷取功能。

  • databaseName - 要執行此預存程序的資料庫名稱。

msdb.dbo.gcloudsql_cdc_disable_db

語法

exec msdb.dbo.gcloudsql_cdc_disable_db databaseName

說明

為資料庫關閉 CDC。

  • databaseName - 要執行此預存程序的資料庫名稱。

以 Cloud SQL 做為發布者的外部複製程序

如要進一步瞭解如何發布至外部訂閱者或其他 Cloud SQL 執行個體,請參閱「設定外部備用資源」。

msdb.dbo.gcloudsql_transrepl_setup_distribution

語法

    exec msdb.dbo.gcloudsql_transrepl_setup_distribution @login,@password

說明

設定發布資料庫的包裝函式預存程序。包裝函式會呼叫下列項目:sp_adddistributorsp_adddistributiondbsp_adddistpublisher

  • login:用於連線及建立發布資料庫的現有登入資訊。
  • password - 連線至發布商時使用的密碼。

msdb.dbo.gcloudsql_transrepl_replicationdboption

語法

    exec msdb.dbo.gcloudsql_transrepl_replicationdboption @db,@value

說明

為使用 sp_replicationdboption 的發布者啟用或停用資料庫的發布選項。

  • db:要設定複製選項的資料庫。
  • value - 可讓您指定 True 來啟用發布選項,或指定 False 來停用發布選項。

msdb.dbo.gcloudsql_transrepl_addlogreader_agent

語法

    exec msdb.dbo.gcloudsql_transrepl_addlogreader_agent @db,@login,@password

說明

為使用 sp_addlogreader_agent 的資料庫設定記錄讀取器代理程式。

  • db - 要發布的資料庫。
  • login - 連線至發布者時使用的登入資訊。
  • password - 連線時使用的密碼。

msdb.dbo.gcloudsql_transrepl_addpublication

語法

    exec msdb.dbo.gcloudsql_transrepl_addpublication @db,@publication

說明

建立交易式發布作業,並做為 sp_addpublication 的包裝預存程序。

  • db - 要發布的資料庫。
  • publication - 建立的新出版品名稱。

msdb.dbo.gcloudsql_transrepl_droppublication

語法

    exec msdb.dbo.gcloudsql_transrepl_droppublication @db,@publication

說明

捨棄交易式發行項目,並做為 sp_droppublication 的包裝預存程序。

  • db - 要捨棄發布內容的資料庫。
  • publication - 停播的出版品名稱。

msdb.dbo.gcloudsql_transrepl_addpublication_snapshot

語法

    exec msdb.dbo.gcloudsql_transrepl_addpublication_snapshot  @db,@publication,@login,@password

說明

為發布的資料庫建立快照代理程式,做為 sp_addpublication_snapshot 的包裝預存程序。

  • db - 要捨棄發布內容的資料庫。
  • publication - 停播的出版品名稱。
  • login - 連線至發布者時使用的登入資訊。
  • password - 連線時使用的密碼。

msdb.dbo.gcloudsql_transrepl_addpushsubscription_agent

語法

    exec msdb.dbo.gcloudsql_transrepl_addpushsubscription_agent
      @db,@publication,@subscriber_db,@subscriber_login,
        @subscriber_password,@subscriber

說明

建立新的排定代理程式工作,以同步處理推送訂閱項目,做為 sp_addpushsubscription_agent 的包裝預存程序。

  • db - 發布的資料庫。
  • publication - 要新增推送訂閱代理程式的出版品名稱。
  • subscriber_db - 訂閱者資料庫。
  • subscriber_login - 連線至訂閱端時使用的登入資訊。
  • subscriber_password - 連線至訂閱者時使用的密碼。
  • subscriber:訂閱端執行個體的 IP 名稱。這個值可以指定為:<Hostname>,<PortNumber>

msdb.dbo.gcloudsql_transrepl_addmonitoraccess

語法

    exec msdb.dbo.gcloudsql_transrepl_addmonitoraccess @login

說明

提供複製監視器和 SELECT 陳述式的存取權,可存取散發資料庫中與複製相關的資料表。

  • login - 用於存取複寫監控器的登入資訊。

msdb.dbo.gcloudsql_transrepl_changedistributor_property

語法

    exec msdb.dbo.gcloudsql_transrepl_changedistributor_property @property,@value

說明

這項預存程序會變更 heartbeat_interval,並包裝 sp_changedistributor_property。詳情請參閱 sp_changedistributor_property說明文件。如要進一步瞭解 heartbeat_interval 值,請參閱該說明文件。

  • property - 散布資料庫的屬性。
  • value - 為指定屬性提供的值。

msdb.dbo.gcloudsql_transrepl_dropsubscriber

語法

    exec msdb.dbo.gcloudsql_transrepl_dropsubscriber @subscriber

說明

移除訂閱者,做為 sp_dropsubscriber 的包裝函式預存程序。

  • subscriber - 要捨棄的訂閱端 IP 名稱。這個值可以指定為:<Hostname>,<PortNumber>

msdb.dbo.gcloudsql_transrepl_remove_distribution

語法

     exec msdb.dbo.gcloudsql_transrepl_remove_distribution

說明

移除發行設定,做為下列項目的包裝預存程序: sp_dropdistpublishersp_dropdistributiondbsp_dropdistributor

後續步驟