共用方式為


sp_syscollector_update_collection_set (Transact-SQL)

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

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • [ @collection_set_id = ] collection_set_id
    這是收集組的唯一本機識別碼。collection_set_id 是 int,而且必須具有值 (如果 name 是 NULL 的話)。

  • [ @name = ] 'name'
    這是收集組的名稱。name 是 sysname,而且必須具有值 (如果 collection_set_id 是 NULL 的話)。

  • [ @new_name = ] 'new_name'
    這是收集組的新名稱。new_name 是 sysname,而且如果使用的話,不可以是空的字串。new_name 必須是唯一的。如需目前的收集組名稱清單,請查詢 syscollector_collection_sets 系統檢視表。

  • [ @target = ] 'target'
    保留供日後使用。

  • [ @collection_mode = ] collection_mode
    這是要使用之資料收集的類型。collection_mode 是 smallint,而且可能具有下列其中一個值:

    0 - 快取模式。資料收集和上傳位於不同的排程上。指定連續收集的快取模式。

    1 - 非快取模式。資料收集和上傳位於相同的排程上。針對特定收集或快照集收集指定非快取模式。

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

  • [ @days_until_expiration= ] days_until_expiration
    這是收集的資料儲存於管理資料倉儲內的天數。days_until_expiration 是 smallint。days_until_expiration 必須為 0 或正整數。

  • [ @proxy_id = ] proxy_id
    這是 SQL Server Agent Proxy 帳戶的唯一識別碼。proxy_id 是 int。

  • [ @proxy_name = ] 'proxy_name'
    為 Proxy 的名稱。proxy_name 是 sysname,而且可為 Null。

  • [ @schedule_uid = ] 'schedule_uid'
    這是指向排程的 GUID。schedule_uid 是 uniqueidentifier。

    若要取得 schedule_uid,請查詢 sysschedules 系統資料表。

    當 collection_mode 設定為 0 時,必須指定 schedule_uid 或 schedule_name。當 collection_mode 設定為 1 時,將會忽略 schedule_uid 或 schedule_name (如果指定的話)。

  • [ @schedule_name = ] 'schedule_name'
    為排程的名稱。schedule_name 為 sysname,而且可為 Null。如果指定的話,schedule_uid 必須為 NULL。若要取得 schedule_name,請查詢 sysschedules 系統資料表。

  • [ @logging_level = ] logging_level
    這是記錄層級。logging_level 是 smallint,並包含下列其中一個值:

    0 - 記錄執行資訊和追蹤的 SSIS 事件:

    • 開始/停止收集組

    • 開始/停止封裝

    • 錯誤資訊

    1 - 層級 0 記錄和:

    • 執行統計資料

    • 持續執行的收集進度

    • SSIS 的警告事件

    2 - 層級 1 記錄和 SSIS 的詳細事件資訊。

    logging_level 的預設值為 1。

  • [ @description = ] 'description'
    這是收集組的描述。description 是 nvarchar(4000)。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_syscollector_update_collection_set 必須在 msdb 系統資料庫的內容中執行。

collection_set_id 或 name 必須具有值,不能同時為 NULL。若要取得這些值,請查詢 syscollector_collection_sets 系統檢視表。

如果此收集組正在執行,您就只能更新 schedule_uid 和 description。若要停止此收集組,請使用 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