sp_syscollector_update_collection_set (Transact-SQL)

適用対象: SQL Server

ユーザー定義コレクション セットのプロパティを変更したり、ユーザー定義コレクション セットの名前を変更したりするために使用します。

警告

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

Transact-SQL 構文表記規則

構文

sp_syscollector_update_collection_set
    [ [ @collection_set_id = ] collection_set_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_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

コレクション セットの一意のローカル識別子。 @collection_set_idint であり、 @nameNULL場合は値が必要です。

[ @name = ] N'name'

コレクション セットの名前。 @namesysname であり、 @collection_set_idNULL場合は値を持つ必要があります。

[ @new_name = ] N'new_name'

コレクション セットの新しい名前。 @new_namesysname で、既定値は NULL で、使用する場合は空の文字列にすることはできません。 @new_name は一意である必要があります。 現在のコレクション セット名の一覧については、 syscollector_collection_sets システム ビューに対してクエリを実行します。

[ @target = ] N'target'

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

[ @collection_mode = ] collection_mode

使用するデータ収集の種類。 @collection_modesmallint であり、次のいずれかの値を持つことができます。

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

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

非キャッシュ モードからキャッシュ モード (0) に変更する場合は、 @schedule_uid または @schedule_nameも指定する必要があります。

[ @days_until_expiration = ] days_until_expiration

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

[ @proxy_id = ] proxy_id

SQL Server エージェント プロキシ アカウントの一意識別子。 @proxy_idint です。

[ @proxy_name = ] N'proxy_name'

プロキシの名前。 @proxy_namesysname で、既定値は NULL です。

[ @schedule_uid = ] 'schedule_uid'

スケジュールを指す GUID。 @schedule_uiduniqueidentifier で、既定値は NULL です。

@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 です。

リターン コードの値

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

解説

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

collection_set_idまたはnameには値が必要です。両方をNULLすることはできません。 これらの値を取得するには、 syscollector_collection_sets システム ビューに対してクエリを実行します。

コレクション セットが実行されている場合、更新できるのは schedule_uid説明のみです。 コレクション セットを停止するには、 sp_syscollector_stop_collection_setを使用します。

アクセス許可

このプロシージャを実行するには、 dc_admin または dc_operator (EXECUTE 権限を持つ) 固定データベース ロールのメンバーシップが必要です。 このストアド プロシージャ dc_operator 実行できますが、このロールのメンバーは、変更できるプロパティに制限されます。 次のプロパティは、 dc_adminによってのみ変更できます。

  • @new_name
  • @target
  • @proxy_id
  • @description
  • @collection_mode
  • @days_until_expiration

A. コレクション セットの名前を変更する

次の例では、ユーザー定義コレクション セットの名前を変更します。

USE msdb;
GO
EXECUTE dbo.sp_syscollector_update_collection_set
@name = N'Simple collection set test 1',
@new_name = N'Collection set test 1 in cached mode';
GO

B. コレクション モードを非キャッシュからキャッシュに変更する

次の例では、コレクション モードを非キャッシュ モードからキャッシュ モードに変更します。 この変更には、スケジュール ID またはスケジュール名を指定する必要があります。

USE msdb;
GO
EXECUTE dbo.sp_syscollector_update_collection_set
@name = N'Collection set test 1 in cached mode',
@collection_mode = 0,
@schedule_uid = 'C7022AF3-51B8-4011-B159-64C47C88FF70';
-- alternatively, use @schedule_name.
-- @schedule_name = N'CollectorSchedule_Every_15min;
GO

C: その他のコレクション セット パラメーターを変更する

次の例では、 Simple collection set test 2という名前のコレクション セットのさまざまなプロパティを更新します。

USE msdb;
GO

EXEC dbo.sp_syscollector_update_collection_set
    @name = N'Simple collection set test 2',
    @collection_mode = 1,
    @days_until_expiration = 5,
    @description = N'This is a test collection set that runs in noncached mode.',
    @logging_level = 0;
GO