次の方法で共有


sp_syscollector_create_collection_set (Transact-SQL)

適用対象: SQL Server

新しいコレクション セットを作成します。 このストアド プロシージャを使用して、データ収集用のカスタム コレクション セットを作成できます。

警告

プロキシとして構成された Windows アカウントが、まだログインしていない非対話型ユーザーまたは対話型ユーザーである場合、プロファイル ディレクトリは存在せず、ステージング ディレクトリの作成は失敗します。 そのため、ドメイン コントローラーでプロキシ アカウントを使用している場合は、プロファイル ディレクトリが作成されたことを確認するために、少なくとも 1 回使用された対話型アカウントを指定する必要があります。

Transact-SQL 構文表記規則

構文

sp_syscollector_create_collection_set
    [ @name = ] N'name'
    [ , [ @target = ] N'target' ]
    [ , [ @collection_mode = ] collection_mode ]
    [ , [ @days_until_expiration = ] days_until_expiration ]
    [ , [ @proxy_id = ] proxy_id ]
    [ , [ @proxy_name = ] N'proxy_name' ]
    [ , [ @schedule_uid = ] 'schedule_uid' ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @logging_level = ] logging_level ]
    [ , [ @description = ] N'description' ]
    , [ @collection_set_id = ] collection_set_id OUTPUT
    [ , [ @collection_set_uid = ] 'collection_set_uid' OUTPUT ]
[ ; ]

引数

[ @name = ] N'name'

コレクション セットの名前。 @namesysname 空の文字列または NULLにすることはできません。

@name は一意である必要があります。 現在のコレクション セット名の一覧については、 syscollector_collection_sets システム ビューに対してクエリを実行します。

[ @target = ] N'target'

将来の使用のために予約済み。 @targetnvarchar(128) で、既定値は NULL です。

[ @collection_mode = ] collection_mode

@collection_modesmallint で、既定値は 0 です。

データを収集し、格納する方法を指定します。 @collection_modesmallint で、既定値は 0 で、次のいずれかの値を指定できます。

  • 0: キャッシュ モード。 データの収集とアップロードは別々のスケジュールで行われます。 連続コレクションのキャッシュ モードを指定します。

  • 1: キャッシュされていないモード。 データの収集とアップロードは同じスケジュールで行われます。 アドホック コレクションまたはスナップショット コレクションの非キャッシュ モードを指定します。

@collection_mode0場合は、@schedule_uidまたは@schedule_nameを指定する必要があります。

[ @days_until_expiration = ] days_until_expiration

収集されたデータが管理データ ウェアハウスに保存される日数。 @days_until_expirationsmallint で、既定値は 730 (2 年) です。 @days_until_expiration は、 0 または正の整数である必要があります。

[ @proxy_id = ] proxy_id

SQL Server エージェント プロキシ アカウントの一意識別子。 @proxy_idint で、既定値は NULL です。 指定する場合は、 @proxy_nameNULLする必要があります。 @proxy_idを取得するには、sysproxies システム テーブルに対してクエリを実行します。 dc_admin固定データベース ロールには、プロキシにアクセスするためのアクセス許可が必要です。 詳細については、「SQL Server エージェント プロキシの作成を参照してください。

[ @proxy_name = ] N'proxy_name'

プロキシ アカウントの名前。 @proxy_namesysname で、既定値は NULL です。 指定する場合は、 @proxy_idNULLする必要があります。 @proxy_nameを取得するには、sysproxies システム テーブルに対してクエリを実行します。

[ @schedule_uid = ] 'schedule_uid'

スケジュールを指す GUID。 @schedule_uiduniqueidentifier で、既定値は NULL です。 指定する場合は、 @schedule_nameNULLする必要があります。 @schedule_uidを取得するには、sysschedules システム テーブルに対してクエリを実行します。

@collection_mode0に設定されている場合は、@schedule_uidまたは@schedule_nameを指定する必要があります。 @collection_mode1に設定されている場合、@schedule_uidまたは@schedule_nameが指定されている場合は無視されます。

[ @schedule_name = ] N'schedule_name'

スケジュールの名前です。 @schedule_namesysname で、既定値は NULL です。 指定する場合は、 @schedule_uidNULLする必要があります。 @schedule_nameを取得するには、sysschedulesシステム テーブルに対してクエリを実行します。

[ @logging_level = ] logging_level

ログ 記録レベル。 @logging_levelsmallint で、既定値は 1 で、次のいずれかの値があります。

  • 0: ログ実行情報と追跡する SSIS イベント:

    • コレクション セットの開始/停止
    • パッケージの開始/停止
    • エラー情報
  • 1: レベル 0 ログ記録と:

    • 実行の統計
    • 継続的に実行されるコレクションの進行状況
    • SSIS からの警告イベント
  • 2: レベル 1 ログ記録と SSIS からの詳細なイベント情報。

[ @description = ] N'description'

コレクション セットの説明。 @descriptionnvarchar(4000) で、既定値は NULL です。

[ @collection_set_id = ] collection_set_id OUTPUT

コレクション セットの一意のローカル識別子。 @collection_set_id は、 int 型の OUTPUT パラメーターです。

[ @collection_set_uid = ] 'collection_set_uid' OUTPUT

コレクション セットの GUID を指定します。 @collection_set_uid は、 uniqueidentifier 型の OUTPUT パラメーターです。

リターン コードの値

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

解説

sp_syscollector_create_collection_set は、 msdb システム データベースのコンテキストで実行する必要があります。

アクセス許可

このプロシージャを実行するには、(EXECUTE 権限を持つ) dc_admin 固定データベース ロールのメンバーシップが必要です。

A. 既定値を使用してコレクション セットを作成する

次の例では、必須パラメーターのみを指定してコレクション セットを作成します。 @collection_mode は必要ありませんが、既定のコレクション モード (キャッシュ) では、スケジュール ID またはスケジュール名を指定する必要があります。

USE msdb;
GO

DECLARE @collection_set_id INT;

EXECUTE dbo.sp_syscollector_create_collection_set
    @name = N'Simple collection set test 1',
    @description = N'This is a test collection set that runs in non-cached mode.',
    @collection_mode = 1,
    @collection_set_id = @collection_set_id OUTPUT;
GO

B. 指定した値を使用してコレクション セットを作成する

次の例では、多くのパラメーターの値を指定してコレクション セットを作成します。

USE msdb;
GO

DECLARE @collection_set_id INT;
DECLARE @collection_set_uid UNIQUEIDENTIFIER;

SET @collection_set_uid = NEWID();

EXEC dbo.sp_syscollector_create_collection_set
    @name = N'Simple collection set test 2',
    @collection_mode = 0,
    @days_until_expiration = 365,
    @description = N'This is a test collection set that runs in cached mode.',
    @logging_level = 2,
    @schedule_name = N'CollectorSchedule_Every_30min',
    @collection_set_id = @collection_set_id OUTPUT,
    @collection_set_uid = @collection_set_uid OUTPUT;
GO