Поделиться через


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

Б. Переименование элемента сбора

В следующем примере производится переименование элемента сбора.

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. Чтобы просмотреть текущие параметры для данного элемента, выполните запрос столбца параметров в системном представлении 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