sp_syscollector_update_collection_item (Transact-SQL)
適用於:SQL Server
用來修改使用者定義集合項目的屬性,或重新命名使用者定義的集合專案。
語法
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 中定義的範例中所建立的集合項目為基礎。
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