Share via


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_id為 int,預設值為 NULL如果 @name 為 NULL,則@collection_item_id必須具有 值

[ @name = ] N'name'

集合項目的名稱。 @name為 sysname,預設值為 NULL如果 @collection_item_id 為 NULL,@name就必須有值

[ @new_name = ] N'new_name'

集合專案的新名稱。 @new_name是 sysname,預設值NULL,如果使用 ,則不能是空字串。

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

[ @frequency = ] frequency

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

[ @parameters = ] N'parameters'

集合項目的輸入參數。 @parameters為 xml,預設值為空字串。 @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
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 (Transact-SQL) 中定義的範例中所建立的集合項目為基礎。

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 查詢 parameters 數據行。 您可能需要修改@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