sp_syscollector_update_collection_set (Transact-SQL)
適用於:SQL Server
用來修改使用者定義收集組的屬性,或重新命名用戶定義的收集組。
警告
如果設定為 Proxy 的 Windows 帳戶是尚未登入的非互動式或互動式使用者,配置檔目錄將不會存在,而且建立預備目錄將會失敗。 因此,如果您在域控制器上使用 Proxy 帳戶,您必須指定至少使用過一次的互動式帳戶,以確保已建立設定文件目錄。
語法
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_id 為 NULL
,就必須有值。
[ @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