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 值區的檔案,將資料匯入 Cloud SQL 執行個體。它會使用 Cloud Storage 互通 APIHMAC 金鑰,驗證 Cloud Storage 儲存桶的存取權。

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

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

路徑必須採用以下格式:

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

請依指示取代下列項目:

  • BUCKET_NAME:指定 Cloud Storage 值區名稱。
  • 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 值區名稱。
  • 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 值區名稱。
  • 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 Audit 功能建立的稽核檔案中擷取資料。

這個儲存程序接受的參數與 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 陳述式。

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

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:發布資料庫的屬性。
  • :要為指定屬性提供的值。

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

後續步驟