共用方式為


sp_syscollector_update_collection_item (Transact-SQL)

用來修改使用者定義之收集項的屬性,或是用來重新命名使用者定義的收集項。

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

語法

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

引數

  • [ @collection_item_id = ] collection_item_id
    這是可識別收集項的唯一識別碼。collection_item_id 是 int,而且預設值為 NULL。collection_item_id 必須具有值 (如果 name 是 NULL 的話)。

  • [ @name = ] 'name'
    這是收集項的名稱。name 是 sysname,而且預設值為 NULL。name 必須具有值 (如果 collection_item_id 是 NULL 的話)。

  • [ @new_name = ] 'new_name'
    這是集合項目的新名稱。new_name 是 sysname,而且如果使用的話,不可以是空的字串。

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

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

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

傳回碼值

0 (成功) 或 1 (失敗)

備註

如果收集組設定為非快取模式,系統就會忽略變更此頻率,因為這個模式會導致在針對收集組指定的排程中同時發生資料收集和上傳作業。若要檢視收集組的狀態,請執行下列查詢。使用要更新之收集項的識別碼取代 <collection_item_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
JOIN syscollector_collection_items AS ci 
ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = <collection_item_id>;

權限

需要 dc_admin 或 dc_operator (具有 EXECUTE 權限) 固定資料庫角色中的成員資格,才能執行此程序。雖然 dc_operator 可以執行此預存程序,但是這個角色的成員會受限於他們可以變更的屬性。下列屬性只能由 dc_admin 變更:

  • @new_name

  • @parameters

範例

下列範例是根據<sp_syscollector_create_collection_item (Transact-SQL)>中定義之範例內所建立的收集項。

A. 變更收集頻率

下列範例會針對指定的收集項變更收集頻率。

USE msdb;
GO
EXEC sp_syscollector_update_collection_item 
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO

B. 重新命名收集項

下列範例會重新命名收集項。

USE msdb;
GO
EXEC sp_syscollector_update_collection_item 
@name = N'My custom TSQL query collector item',
@new_name = N'My modified TSQL 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