共用方式為


sp_syscollector_update_collection_set (Transact-SQL)

適用於:SQL Server

用來修改使用者定義收集組的屬性,或重新命名用戶定義的收集組。

警告

如果設定為 Proxy 的 Windows 帳戶是尚未登入的非互動式或互動式使用者,配置檔目錄將不會存在,而且建立預備目錄將會失敗。 因此,如果您在域控制器上使用 Proxy 帳戶,您必須指定至少使用過一次的互動式帳戶,以確保已建立設定文件目錄。

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,且如果 @nameNULL,就必須有 值。

[ @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為 smallint,而且可以有下列其中一個值:

  • 0:快取模式。 數據收集和上傳會依個別排程進行。 指定連續收集的快取模式。

  • 1:非快取模式。 數據收集和上傳的排程相同。 為臨機操作集合或快照集集合指定非快取模式。

如果從非快取模式變更為快取模式 (0),您也必須指定 @schedule_uid@schedule_name

[ @days_until_expiration = ] days_until_expiration

收集的數據儲存在管理數據倉儲中的天數。 @days_until_expiration為 smallint,且必須是 0 或正整數。

[ @proxy_id = ] proxy_id

SQL Server Agent Proxy 帳戶的唯一標識碼。 @proxy_id為 int

[ @proxy_name = ] N'proxy_name'

Proxy 的名稱。 @proxy_name為 sysname,預設值為 NULL

[ @schedule_uid = ] 'schedule_uid'

指向排程的 GUID。 @schedule_uid為 uniqueidentifier,預設值為 NULL

若要取得 @schedule_uid,請 sysschedules 查詢系統數據表。

當@collection_mode設定為 0必須指定@schedule_uid@schedule_name。 當@collection_mode設定為 1如果指定,則會忽略@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為 smallint,預設值1為 ,具有下列其中一個值:

  • 0:追蹤下列記錄執行資訊和 SSIS 事件:

    • 啟動/停止收集組
    • 啟動/停止套件
    • 錯誤資訊
  • 1:層級 0 記錄和:

    • 執行統計資料
    • 持續執行收集進度
    • 來自 SSIS 的警告事件
  • 2:來自 SSIS 的層級 1 記錄和詳細的事件資訊。

[ @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

範例

A. 重新命名收集組

下列範例會重新命名使用者定義的收集組。

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