本節說明 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 值區的檔案,將資料匯入 Cloud SQL 執行個體。它會使用 Cloud Storage 互通 API 和 HMAC 金鑰,驗證 Cloud Storage 儲存桶的存取權。
這個預存程序具有下列參數:
參數 | 類型 | 說明 |
---|---|---|
@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 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_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
陳述式。
- 登入 - 用於存取複製監控器的登入資訊。
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_dropdistpublisher、sp_dropdistributiondb 和 sp_dropdistributor。
後續步驟
- 瞭解如何啟用變更資料擷取 (CDC)。
- 瞭解如何設定外部備用資源。