sp_syscollector_update_collection_item (Transact-SQL)

適用対象: SQL Server

ユーザー定義のコレクション アイテムのプロパティまたは名前の変更に使用されます。

Transact-SQL 構文表記規則

構文

sp_syscollector_update_collection_item
    [ [ @collection_item_id = ] collection_item_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @frequency = ] frequency ]
    [ , [ @parameters = ] N'parameters' ]
[ ; ]

引数

[ @collection_item_id = ] collection_item_id

コレクション項目を識別する一意識別子。 @collection_item_idint で、既定値は NULL です。 @nameNULLされている場合、@collection_item_idには値が必要です。

[ @name = ] N'name'

コレクション アイテムの名前です。 @namesysname で、既定値は NULL です。 @collection_item_idNULL場合は、@nameに値が必要です。

[ @new_name = ] N'new_name'

コレクション 項目の新しい名前。 @new_namesysname で、既定値は NULL で、使用する場合は空の文字列にすることはできません。

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

[ @frequency = ] 頻度

このコレクション 項目によってデータが収集される頻度 (秒単位)。 @frequencyint で、既定値は 5 で、指定できる最小値です。

[ @parameters = ] N'パラメーター'

コレクション アイテムの入力パラメーターを指定します。 @parametersxml で、既定値は空の文字列です。 @parameters スキーマは、コレクター型のパラメーター スキーマと一致する必要があります。

リターン コードの値

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

解説

コレクション セットが非キャッシュ モードに設定されている場合、このモードではコレクション セットに指定されたスケジュールでデータ収集とアップロードが行われるため、頻度を変更しても無視されます。 コレクション セットの状態を表示するには、次のクエリを実行します。 <collection_item_id> は、更新するコレクション アイテムの ID に置き換えてください。

USE msdb;
GO

SELECT cs.collection_set_id,
    collection_set_uid,
    cs.name,
    'is running' = CASE
        WHEN is_running = 0
            THEN 'No'
        ELSE 'Yes'
        END,
    'cache mode' = CASE
        WHEN collection_mode = 0
            THEN 'Cached mode'
        ELSE 'Non-cached mode'
        END
FROM syscollector_collection_sets AS cs
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

アクセス許可

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

  • @new_name
  • @parameters

次の例は、 sp_syscollector_create_collection_item で定義されている例で作成されたコレクション項目に基づいています。

A. コレクションの頻度を変更する

次の例では、指定したコレクション アイテムの収集頻度を変更します。

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @frequency = 3000;
GO

B. コレクション項目の名前を変更する

次の例では、コレクション アイテムの名前を変更します。

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

C: コレクション 項目のパラメーターを変更する

次の例では、コレクション 項目に関連付けられているパラメーターを変更します。 <Value> 属性内で定義されているステートメントを変更し、UseSystemDatabases 属性を false に設定します。 この項目の現在のパラメーターを表示するには、 syscollector_collection_items システム ビューでパラメーター列に対してクエリを実行します。 @collection_item_idの値を変更する必要がある場合があります。

USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@collection_item_id = 9,
@parameters = '
    <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
        <Query>
            <Value>SELECT * FROM sys.dm_db_index_usage_stats</Value>
            <OutputTable>MyOutputTable</OutputTable>
        </Query>
        <Databases>
            <Database> UseSystemDatabases = "false"
                       UseUserDatabases = "true"</Database>
        </Databases>
    </ns:TSQLQueryCollector>';
GO