共用方式為


sp_syscollector_create_collection_item (Transact-SQL)

建立使用者定義之收集組內的收集項。收集項會定義要收集的資料以及資料收集的頻率。

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • [ @collection\_set\_id = ] collection_set_id
    這是收集組的唯一本機識別碼。collection_set_id 是 int。

  • [ @collector\_type\_uid = ] 'collector_type_uid'
    這是可識別用於這個項目之收集器型別的 GUID。collector_type_uid 是 uniqueidentifier,而且沒有預設值。如需收集器型別的清單,請查詢 syscollector_collector_types 系統檢視表。

  • [ @name = ] 'name'
    這是收集項的名稱。name 是 sysname,而且不可以是空的字串或 NULL。

    name 必須是唯一的。如需目前的收集項名稱清單,請查詢 syscollector_collection_items 系統檢視表。

  • [ @frequency = ] frequency
    這可用來指定此收集項收集資料的頻率 (以秒為單位)。frequency 是 int,預設值為 5。可指定的最小值是 5 秒。

    如果收集組設定為非快取模式,系統就會忽略此頻率,因為這個模式會導致在針對收集組指定的排程中同時發生資料收集和上載作業。若要檢視收集組的收集模式,請查詢 syscollector_collection_sets 系統檢視表。

  • [ @parameters = ] 'parameters'
    收集器型別的輸入參數。parameters 是 xml,且預設值為 NULL。parameters 結構描述必須符合收集器型別的參數結構描述。

  • [ @collection\_item\_id = ] collection_item_id
    這是可識別收集組項目的唯一識別碼。collection_item_id 是 int,而且具有 OUTPUT。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_syscollector_create_collection_item 必須在 msdb 系統資料庫的內容中執行。

加入收集項的目標收集組必須先停止後,才能建立收集項。收集項不能加入至系統收集組中。

權限

需要 dc_admin (具有 EXECUTE 權限) 固定資料庫角色中的成員資格,才能執行此程序。

範例

下列範例會根據 Generic T-SQL Query Collector Type 收集類型來建立收集項,然後將它加入至名為 Simple collection set test 2 的收集組。若要建立指定的收集組,請在<sp_syscollector_create_collection_set (Transact-SQL)>中執行範例 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 TSQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;