次の方法で共有


sp_syscollector_create_collection_item (Transact-SQL)

適用対象: SQL Server

ユーザー定義コレクション セット内にコレクション項目を作成します。 コレクション項目は、収集するデータと、データを収集する頻度を定義します。

Transact-SQL 構文表記規則

構文

sp_syscollector_create_collection_item
    [ @collection_set_id = ] collection_set_id
    , [ @collector_type_uid = ] 'collector_type_uid'
    , [ @name = ] N'name'
    [ , [ @frequency = ] frequency ]
    [ , [ @parameters = ] N'parameters' ]
    , [ @collection_item_id = ] collection_item_id OUTPUT
[ ; ]

引数

[ @collection_set_id = ] collection_set_id

コレクション セットの一意のローカル識別子。 @collection_set_idint で、既定値はありません。

[ @collector_type_uid = ] 'collector_type_uid'

この項目に使用するコレクターの種類を識別する GUID。 @collector_type_uiduniqueidentifier で、既定値はありません。 コレクターの種類の一覧については、 syscollector_collector_types システム ビューに対してクエリを実行します。

[ @name = ] N'name'

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

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

[ @frequency = ] 頻度

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

コレクション セットが非キャッシュ モードに設定されている場合、このモードではデータ収集とアップロードの両方がコレクション セットに指定されたスケジュールで実行されるため、頻度は無視されます。 コレクション セットのコレクション モードを表示するには、 syscollector_collection_sets システム ビューに対してクエリを実行します。

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

コレクター型の入力パラメーターを指定します。 @parametersxml で、既定値は NULL です。 @parameters スキーマは、コレクター型のパラメーター スキーマと一致する必要があります。

[ @collection_item_id = ] collection_item_id OUTPUT

コレクション セット項目を識別する一意識別子。 @collection_item_id は、 int 型の OUTPUT パラメーターです。

リターン コードの値

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

解説

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

コレクション項目を作成する前に、コレクション項目の追加先のコレクション セットを停止する必要があります。 コレクション項目をシステム コレクション セットに追加することはできません。

アクセス許可

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

次の例では、 Generic T-SQL Query Collector Type コレクション型に基づいてコレクション項目を作成し、 Simple collection set test 2という名前のコレクション セットに追加します。 指定したコレクション セットを作成するには、 sp_syscollector_create_collection_setで例 B を実行します。

USE msdb;
GO

DECLARE @collection_item_id INT;
DECLARE @collection_set_id INT = (
        SELECT collection_set_id
        FROM syscollector_collection_sets
        WHERE name = N'Simple collection set test 2');
DECLARE @collector_type_uid UNIQUEIDENTIFIER = (
        SELECT collector_type_uid
        FROM syscollector_collector_types
        WHERE name = N'Generic T-SQL Query Collector Type');
DECLARE @params XML = CONVERT(XML, N'\<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
            <Query>
                <Value>SELECT * FROM sys.objects</Value>
                <OutputTable>MyOutputTable</OutputTable>
            </Query>
            <Databases>
                <Database> UseSystemDatabases = "true"
                           UseUserDatabases = "true"
                </Database>
            </Databases>
         \</ns:TSQLQueryCollector>');

EXEC sp_syscollector_create_collection_item @collection_set_id = @collection_set_id,
    @collector_type_uid = @collector_type_uid,
    @name = 'My custom T-SQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;