共用方式為


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_id為 int,沒有預設值。

[ @collector_type_uid = ] 'collector_type_uid'

GUID,識別要用於這個專案的收集器類型。 @collector_type_uid是 uniqueidentifier,沒有預設值。 如需收集器類型清單,請查詢 syscollector_collector_types 系統檢視。

[ @name = ] N'name'

集合項目的名稱。 @name是 sysname,不能是空字串或 NULL

@name必須是唯一的。 如需目前集合專案名稱的清單,請查詢 syscollector_collection_items 系統檢視。

[ @frequency = ] frequency

用來指定此收集項收集數據的頻率(以秒為單位)。 @frequency為 int,預設值為 5。 可指定的最小值為5秒。

如果收集組設定為非快取模式,則會忽略頻率,因為此模式會導致數據收集和上傳在為收集組指定的排程發生。 若要檢視收集組的收集模式,請查詢 syscollector_collection_sets (Transact-SQL) 系統檢視。

[ @parameters = ] N'parameters'

收集器類型的輸入參數。 @parameters為 xml,預設值為 NULL@parameters架構必須符合收集器類型的參數架構。

[ @collection_item_id = ] collection_item_id OUTPUT

識別收集組專案的唯一標識碼。 @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 T-SQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;