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


sp_syscollector_update_collection_set (Transact-SQL)

Область применения: SQL Server

Используется для изменения свойств или переименования определяемого пользователем набора элементов сбора.

Предупреждение

В случаях, когда учетная запись Windows, настроенная в качестве прокси-сервера, является неинтерактивным или интерактивным пользователем, не вошедшего в систему, каталог профилей не будет существовать, а создание промежуточного каталога завершится ошибкой. Таким образом, если вы используете учетную запись прокси-сервера на контроллере домена, необходимо указать интерактивную учетную запись, которая использовалась по крайней мере один раз, чтобы убедиться, что каталог профилей был создан.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_syscollector_update_collection_set
    [ [ @collection_set_id = ] collection_set_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @target = ] N'target' ]
    [ , [ @collection_mode = ] collection_mode ]
    [ , [ @days_until_expiration = ] days_until_expiration ]
    [ , [ @proxy_id = ] proxy_id ]
    [ , [ @proxy_name = ] N'proxy_name' ]
    [ , [ @schedule_uid = ] 'schedule_uid' ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @logging_level = ] logging_level ]
    [ , [ @description = ] N'description' ]
[ ; ]

Аргументы

[ @collection_set_id = ] collection_set_id

Уникальный локальный идентификатор набора коллекций. @collection_set_id имеет значение int и должно иметь значение, если @name .NULL

[ @name = ] N'name'

Имя набора элементов сбора. @name является sysname и должен иметь значение, если @collection_set_idNULL.

[ @new_name = ] N'new_name'

Новое имя набора коллекций. @new_name имеет имя sysname с значением по умолчанию NULLи, если используется, не может быть пустой строкой. @new_name должен быть уникальным. Для списка имен текущих наборов коллекций запросите системное syscollector_collection_sets представление.

[ @target = ] N'target'

Зарезервировано для последующего использования. @target — nvarchar(128) с значением по умолчаниюNULL.

[ @collection_mode = ] collection_mode

Тип используемой коллекции данных. @collection_mode имеет небольшой размер и может иметь одно из следующих значений:

  • 0: кэшированный режим. Сбор и передача данных выполняются по отдельным расписаниям. Укажите кэшированный режим для непрерывного сбора.

  • 1: не кэшированный режим. Сбор и передача данных выполняются по общему расписанию. Укажите некэшированный режим для нерегламентированного сбора или создания моментального снимка.

При переходе из не кэшированного режима в кэшированный режим (0) необходимо также указать @schedule_uid или @schedule_name.

[ @days_until_expiration = ] days_until_expiration

Число дней, в течение которых собранные данные хранятся в хранилище данных управления. @days_until_expiration имеет небольшой размер и должен быть 0 или положительным целым числом.

[ @proxy_id = ] proxy_id

Уникальный идентификатор для учетной записи прокси-сервера агент SQL Server. @proxy_id имеет значение int.

[ @proxy_name = ] N'proxy_name'

Имя учетной записи-посредника. @proxy_name — sysname с значением по умолчаниюNULL.

[ @schedule_uid = ] 'schedule_uid'

GUID, указывающий на расписание. @schedule_uid является уникальным идентификатором по умолчаниюNULL.

Чтобы получить @schedule_uid, выполните запрос к системной sysschedules таблице.

Если задано 0значение @collection_mode, необходимо указать @schedule_uid или @schedule_name. Если задано 1значение @collection_mode, @schedule_uid или @schedule_name игнорируется, если задано.

[ @schedule_name = ] N'schedule_name'

Имя расписания. @schedule_name — sysname с значением по умолчаниюNULL. Если задано, @schedule_uid должен быть NULL. Чтобы получить @schedule_name, выполните запрос к системной sysschedules таблице.

[ @logging_level = ] logging_level

Уровень ведения журнала. @logging_level имеет небольшой размер с значением по умолчанию 1с одним из следующих значений:

  • 0: сведения о выполнении журнала и события служб SSIS, отслеживающие:

    • Запуск и остановку наборов сбора.
    • Запуск и остановку пакетов.
    • Сведения об ошибках.
  • 1: ведение журнала уровня 0 и:

    • Статистика выполнения.
    • Ход непрерывно работающего сбора.
    • Предупреждения из служб SSIS
  • 2: ведение журнала уровня 1 и подробные сведения о событиях из служб SSIS.

[ @description = ] N'description'

Описание набора коллекций. @description — nvarchar(4000) с значением по умолчаниюNULL.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_syscollector_update_collection_set должен выполняться в контексте msdb системной базы данных.

Либо collection_set_id, либо имя должно иметь значение, оба не могут быть NULL. Чтобы получить эти значения, запросите системное syscollector_collection_sets представление.

Если набор коллекций запущен, можно обновить только schedule_uid и описание. Чтобы остановить набор коллекций, используйте sp_syscollector_stop_collection_set.

Разрешения

Для выполнения этой процедуры требуется членство в dc_admin или dc_operator (с разрешением EXECUTE). Хотя dc_operator может выполнять эту хранимую процедуру, члены этой роли ограничены в свойствах, которые они могут изменить. Следующие свойства можно изменить только dc_admin:

  • @new_name
  • @target
  • @proxy_id
  • @description
  • @collection_mode
  • @days_until_expiration

Примеры

А. Переименование набора коллекций

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

USE msdb;
GO
EXECUTE dbo.sp_syscollector_update_collection_set
@name = N'Simple collection set test 1',
@new_name = N'Collection set test 1 in cached mode';
GO

B. Изменение режима сбора с не кэшированного на кэшированный

В следующем примере режим сбора изменяется с некэшированного на кэшированный. Для этого изменения требуется указать идентификатор или имя расписания.

USE msdb;
GO
EXECUTE dbo.sp_syscollector_update_collection_set
@name = N'Collection set test 1 in cached mode',
@collection_mode = 0,
@schedule_uid = 'C7022AF3-51B8-4011-B159-64C47C88FF70';
-- alternatively, use @schedule_name.
-- @schedule_name = N'CollectorSchedule_Every_15min;
GO

C. Изменение других параметров набора коллекций

В следующем примере обновляются различные свойства набора коллекций с именем Simple collection set test 2.

USE msdb;
GO

EXEC dbo.sp_syscollector_update_collection_set
    @name = N'Simple collection set test 2',
    @collection_mode = 1,
    @days_until_expiration = 5,
    @description = N'This is a test collection set that runs in noncached mode.',
    @logging_level = 0;
GO