本節說明 Cloud SQL 執行個體的預存程序。
預存程序包含可重複使用的 SQL 程式碼。
如要執行預存程序,請使用 EXEC
指令,並替換下列變數:
- procedure_name 是預存程序的名稱。
- database_name 是要執行程序的資料庫名稱。
- schema_name 是要執行程序的結構定義名稱。
EXEC database_name.schema_name.procedure_name @param1, @param2;
如要建立自己的預存程序,請參閱「建立預存程序」。
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 可互通的 API 和 HMAC 金鑰,驗證 Cloud Storage bucket 的存取權。
這個預存程序具有下列參數:
參數 | 類型 | 說明 |
---|---|---|
@database |
SYSNAME |
指定要匯入資料的目標資料庫名稱。 |
@schema |
SYSNAME |
指定資料表所屬的結構定義名稱。 |
@object |
NVARCHAR |
指定要插入資料的資料表名稱。 |
@file |
NVARCHAR |
指定 Cloud Storage 值區中匯入檔案的路徑。
路徑必須採用下列格式: s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH 取代下列項目:
|
@batchsize |
INT |
指定批次中的資料列數。 |
@checkconstraints |
BIT |
指定必須檢查目標資料表的所有限制。 |
@codepage |
NVARCHAR |
指定檔案中資料的代碼頁。
RAW 是預設選項,也是唯一選項。 |
@datafiletype |
NVARCHAR |
指定大量插入檔案類型。 |
@datasource |
NVARCHAR |
指定要從中匯入資料的外部資料來源名稱。 |
@errorfile |
NVARCHAR |
指定用於收集格式錯誤列的檔案路徑。
路徑必須採用下列格式: s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH 取代下列項目:
此外,Cloud SQL 會建立副檔名為 |
@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"}] 取代下列項目:
|
@rowsperbatch |
INT |
指定每個批次的資料列數。
如要進一步瞭解如何選取批次大小,請參閱「效能考量」一節。 |
@tablock |
BIT |
指定在大量插入作業期間取得資料表鎖定。 |
@format |
NVARCHAR |
指定檔案格式。使用 CSV 做為這個參數的值。 |
@fieldquote |
NVARCHAR |
指定要在 CSV 檔案中做為引用字元的字元。
如未指定值,Cloud SQL 會使用 |
@formatfile |
NVARCHAR |
指定 Cloud Storage 中檔案的路徑,該檔案會說明要匯入的資料格式。
路徑應採用下列格式: s3://storage.googleapis.com/BUCKET_NAME/FILE_PATH 取代下列項目:
|
@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_adddistributor、sp_adddistributiondb 和 sp_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_dropdistpublisher、 sp_dropdistributiondb 和 sp_dropdistributor。
後續步驟
- 瞭解如何啟用變更資料擷取 (CDC)。
- 瞭解如何設定外部備用資源。