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
. @collection_item_id должно иметь значение, если @name NULL
.
[ @name = ] N'name'
Имя элемента сбора. @name имеет имя sysname с значением по умолчаниюNULL
. @name должно иметь значение, если @collection_item_id NULL
.
[ @new_name = ] N'new_name'
Новое имя элемента коллекции. @new_name имеет имя sysname с значением по умолчанию NULL
и, если используется, не может быть пустой строкой.
@new_name должен быть уникальным. Чтобы получить список текущих имен элементов коллекции, выполните запрос к системным представлениям syscollector_collection_items
.
[ @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.
А. Изменение частоты сбора
В следующем примере изменяется частота сбора для указанного элемента сбора.
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
В. Изменение параметров элемента коллекции
В следующем примере изменяются параметры, связанные с элементом сбора. Инструкция, определенная в атрибуте <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