sp_syscollector_update_collection_set (Transact-SQL)
适用于:SQL Server
用于修改用户定义的收集组的属性或重命名用户定义的收集组。
警告
在配置为代理的 Windows 帐户是非交互用户或者是尚未登录的交互用户时,配置文件目录将不存在,并且临时目录的创建将失败。 因此,如果您正在域控制器上使用代理帐户,则必须指定已使用至少一次的交互帐户,以便确保创建了配置文件目录。
语法
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 代理代理帐户的唯一标识符。 @proxy_id 为 int。
[ @proxy_name = ] N'proxy_name'
代理服务器的名称。 @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
:记录执行信息和跟踪:- 启动/停止收集组
- 启动/停止包
- 错误信息
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。
权限
需要具有 EXECUTE 权限 的dc_admin 或 dc_operator (的成员身份) 固定数据库角色才能执行此过程。 尽管 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. 将收集模式从非缓存更改为缓存
下面的示例将收集模式从非缓存模式更改为缓存模式。 此更改需要您指定计划 ID 或计划名称。
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
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈