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).
А.Изменение частоты сбора
В следующем примере изменяется частота сбора для указанного элемента сбора.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO
Б.Переименование элемента сбора
В следующем примере производится переименование элемента сбора.
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
В.Изменение параметров элемента сбора
В следующем примере изменяются параметры, связанные с элементом сбора. Инструкция, определенная в атрибуте <Value>, изменяется, а атрибуту UseSystemDatabases задается значение false. Чтобы просмотреть текущие параметры для этого элемента, выполните запрос к столбцу parameters в системном представлении 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
См. также
Справочник
Системные хранимые процедуры (Transact-SQL)
sp_syscollector_create_collection_item (Transact-SQL)
syscollector_collection_items (Transact-SQL)