Cloud SQL ストアド プロシージャ

このセクションでは、Cloud SQL インスタンスのストアド プロシージャについて説明します。

ストアド プロシージャには、再利用可能な SQL コードが含まれています。

ストアド プロシージャを実行するには、EXEC コマンドを使用し、次の変数を置き換えます。

  • procedure_name は、ストアド プロシージャの名前です。
  • database_name は、プロシージャを実行するデータベースの名前です。
  • schema_name は、プロシージャを実行するスキーマの名前です。
EXEC database_name.schema_name.procedure_name @param1, @param2;
詳細については、EXECUTE(Transact-SQL)のリファレンス ページをご覧ください。

独自のストアド プロシージャを作成するには、ストアド プロシージャの作成をご覧ください。

Cloud SQL for SQL Server のストアド プロシージャ

一括挿入を使用するためのストアド プロシージャ

一括挿入の詳細については、一括挿入を使用してデータをインポートするをご覧ください。

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 読み込む最初の行の数値識別子を指定します。
@firetriggers BIT ターゲット テーブルで定義された挿入トリガーが一括挿入オペレーション中に実行されることを示します。
@formatfiledatasource NVARCHAR フォーマット ファイルを読み込む外部データソースの名前を指定します。
@keepidentity BIT ID 列のインポート ファイルの ID データの使用を指定します。値は 0(false)と 1(true)です。
@keepnulls BIT 一括インポート オペレーション中に、挿入される列のデフォルト値の代わりに、空の列に null 値を保持するかどうかを指定します。値は 0(false)と 1(true)です。
@kilobytesperbatch INT バッチあたりのデータ量を KB 単位で指定します。
@lastrow INT 読み込む最後の行の数値識別子を指定します。
@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 Audit 機能のストアド プロシージャ

SQL Server Audit の機能の使用については、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

説明

push サブスクリプションを同期する新しいスケジュール設定されたエージェント ジョブを作成します。sp_addpushsubscription_agent のラッパー ストアド プロシージャとして機能します。

  • db - 公開されているデータベース。
  • publication - push サブスクリプション エージェントを追加するパブリケーションの名前。
  • 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 のラッパー ストアド プロシージャとして機能します。

次のステップ