sp_syscollector_create_collection_set (Transact-SQL)
创建一个新的收集组。您可以使用此存储过程为数据收集创建一个自定义收集组。
语法
sp_syscollector_create_collection_set
[ @name = ] '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_name' ]
, [ [ @logging_level = ] logging_level ]
, [ [ @description = ] 'description' ]
, [ @collection_set_id = ] collection_set_id OUTPUT
, [ [ @collection_set_uid = ] 'collection_set_uid' OUTPUT ]
参数
[ @name = ] 'name'
收集组的名称。name 的数据类型为 sysname,并且它不能为空字符串或 NULL。name 必须唯一。有关当前收集组名称的列表,请查询 syscollector_collection_sets 系统视图。
[ @target = ] 'target'
保留以供将来使用。name 的数据类型为 nvarchar(128),默认值为 NULL。[ @collection_mode = ] collection_mode
指定收集和存储数据的方式。collection_mode 的数据类型为 smallint,它可以为以下值之一:0 - 缓存模式。数据收集和上载分别位于各自的计划中。为连续收集指定缓存模式。
1 - 非缓存模式。数据的收集和上载位于同一个计划中。为临时收集或快照收集指定非缓存模式。
collection_mode 的默认值为 0。当 collection_mode 为 0 时,必须指定 schedule_uid 或 schedule_name。
[ @days_until_expiration = ] days_until_expiration
表示收集的数据保存在管理数据仓库中的天数。days_until_expiration 的数据类型为 smallint,默认值为 730(两年)。days_until_expiration 必须为 0 或正整数。[ @proxy_id = ] proxy_id
SQL Server 代理的代理帐户的唯一标识符。proxy_id 的数据类型为 int,默认值为 NULL。如果指定了此参数,则 proxy_name 必须为 NULL。若要获取 proxy_id,请查询 sysproxies 系统表。dc_admin 固定数据库角色必须拥有访问代理的权限。有关详细信息,请参阅创建 SQL Server 代理的代理帐户。[ @proxy_name = ] 'proxy_name'
代理帐户的名称。proxy_name 的数据类型为 sysname,默认值为 NULL。如果指定了此参数,则 proxy_id 必须为 NULL。若要获取 proxy_name,请查询 sysproxies 系统表。[ @schedule_uid = ] 'schedule_uid'
指向计划的 GUID。schedule_uid 的数据类型为 uniqueidentifier,默认值为 NULL。如果指定了此参数,则 schedule_name 必须为 NULL。若要获取 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),默认值为 NULL。[ @collection_set_id = ] collection_set_id
是收集组的唯一本地标识符。collection_set_id 为具有 OUTPUT 的 int 数据类型,且是必需的。[ @collection_set_uid = ] 'collection_set_uid'
是收集组的 GUID。collection_set_uid 为具有 OUTPUT 的 uniqueidentifier 数据类型,默认值为 NULL。
返回代码值
0(成功)或 1(失败)
注释
sp_syscollector_create_collection_set 必须在 msdb 系统数据库的上下文中运行。
权限
需要具有 dc_admin(拥有 EXECUTE 权限)固定数据库角色的成员身份才能执行此过程。
示例
A. 使用默认值创建收集组
下面的示例通过仅指定一个必需参数来创建收集组。@collection_mode 不是必需的,但默认收集模式(缓存)要求指定计划 ID 或计划名称。
USE msdb;
GO
DECLARE @collection_set_id int;
EXECUTE dbo.sp_syscollector_create_collection_set
@name = N'Simple collection set test 1',
@description = N'This is a test collection set that runs in non-cached mode.',
@collection_mode = 1,
@collection_set_id = @collection_set_id OUTPUT;
GO
B. 使用指定值创建收集组
下面的示例通过指定多个参数的值来创建收集组。
USE msdb;
GO
DECLARE @collection_set_id int;
DECLARE @collection_set_uid uniqueidentifier;
SET @collection_set_uid = NEWID();
EXEC dbo.sp_syscollector_create_collection_set
@name = N'Simple collection set test 2',
@collection_mode = 0,
@days_until_expiration = 365,
@description = N'This is a test collection set that runs in cached mode.',
@logging_level = 2,
@schedule_name = N'CollectorSchedule_Every_30min',
@collection_set_id = @collection_set_id OUTPUT,
@collection_set_uid = @collection_set_uid OUTPUT;