core.sp_create_snapshot (Transact-SQL)

適用対象:SQL Server

管理データ ウェアハウス core.snapshots ビューに行を挿入します。 この手順は、アップロード パッケージが管理データ ウェアハウスへのデータのアップロードを開始するたびに呼び出されます。

Transact-SQL 構文表記規則

構文

core.sp_create_snapshot [ @collection_set_uid = ] 'collection_set_uid'
    , [ @collector_type_uid = ] 'collector_type_uid'
    , [ @machine_name = ] 'machine_name'
    , [ @named_instance = ] 'named_instance'
    , [ @log_id = ] log_id
    , [ @snapshot_id = ] snapshot_id OUTPUT
[ ; ]

引数

[ @collection_set_uid = ] 'collection_set_uid'

コレクション セットの GUID を指定します。 @collection_set_uidは既定値のない uniqueidentifier です。 GUID を取得するには、データベース内のdbo.syscollector_collection_sets ビューに対してクエリを msdb 実行します。

[ @collector_type_uid = ] 'collector_type_uid'

コレクター型の GUID。 @collector_type_uidは既定値のない uniqueidentifier です。 GUID を取得するには、データベースのdbo.syscollector_collector_types ビューに対してクエリを msdb 実行します。

[ @machine_name = ] 'machine_name'

コレクション セットが存在するサーバーの名前を指定します。 @machine_nameは sysname で、既定値はありません。

[ @named_instance = ] 'named_instance'

コレクション セットのインスタンスの名前。 @named_instanceは sysname で、既定値はありません。

[ @log_id = ] log_id

データを収集したサーバー上のコレクション セット イベント ログにマップされる一意の識別子。 @log_idは既定値のない bigint です。 log_idの値を取得するには、データベースのdbo.syscollector_execution_log ビューに対してクエリをmsdb実行します。

[ @snapshot_id = ] スナップショット_id

ビューに core.snapshots 挿入される行の一意識別子。 @スナップショット_idint であり、OUTPUT として返されます。

リターン コードの値

0 (成功) または 1 (失敗)。

解説

アップロード パッケージが管理データ ウェアハウスへのデータのアップロードを開始するたびに、データ コレクターのランタイム コンポーネントが呼び出されます core.sp_create_snapshot

このプロシージャでは、次の条件がチェックされます。

  • collection_set_uidは、テーブル内の既存のエントリと core.source_info_internal 一致します。

  • collector_type_uidは、ビュー内の既存のエントリと core.supported_collector_types 一致します。

上記のチェックのいずれかが失敗した場合、プロシージャは失敗し、エラーを返します。

アクセス許可

(EXECUTE 権限を持つ) mdw_writer固定データベース ロールのメンバーシップが必要です。

次の例では、ディスク使用量コレクション セットのスナップショットを作成し、それを管理データ ウェアハウスに追加して、スナップショット識別子を返します。 この例では、既定のインスタンスが使用されています。

USE <management_data_warehouse>;
DECLARE @snapshot_id int;
EXEC core.sp_create_snapshot
    @collection_set_uid = '7B191952-8ECF-4E12-AEB2-EF646EF79FEF',
    @collector_type_uid = '302E93D1-3424-4BE7-AA8E-84813ECF2419',
    @machine_name = '<computername>',
    @named_instance = 'MSSQLSERVER',
    @log_id = 11, -- ID of the log for the collection set
    @snapshot_id = @snapshot_id OUTPUT;