適用於:SQL Server
建立新的收集組。 您可以使用這個預存程式來建立資料收集的自訂收集組。
警告
如果設定為 Proxy 的 Windows 帳戶是尚未登入的非互動式或互動式使用者,配置檔目錄將不會存在,而且建立預備目錄將會失敗。 因此,如果您在域控制器上使用 Proxy 帳戶,您必須指定至少使用過一次的互動式帳戶,以確保已建立設定文件目錄。
語法
sp_syscollector_create_collection_set
[ @name = ] N'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 OUTPUT
[ , [ @collection_set_uid = ] 'collection_set_uid' OUTPUT ]
[ ; ]
引數
[ @name = ] N'名稱'
收集組的名稱。
@name是 sysnameNULL。
@name必須是唯一的。 如需目前收集組名稱的清單,請查詢 syscollector_collection_sets 系統檢視。
[ @target = ] N'target'
保留供未來使用。
@target為 nvarchar(128),預設值為 NULL。
[ @collection_mode = ] collection_mode
@collection_mode為 smallint0。
指定收集數據和儲存的方式。
@collection_mode為 smallint,預設值0為 ,而且可以具有下列其中一個值:
0:快取模式。 數據收集和上傳會依個別排程進行。 指定連續收集的快取模式。1:非快取模式。 數據收集和上傳的排程相同。 為臨機操作集合或快照集集合指定非快取模式。
當@collection_mode為 時,必須指定@schedule_uid或@schedule_name。0
[ @days_until_expiration = ] days_until_expiration
收集的數據儲存在管理數據倉儲中的天數。
@days_until_expiration是smallint730(兩年)。
@days_until_expiration必須是 0 或正整數。
[ @proxy_id = ] proxy_id
SQL Server Agent Proxy 帳戶的唯一標識碼。
@proxy_id為 intNULL。 如果指定, @proxy_name 必須是 NULL。 若要取得 @proxy_id,請查詢 sysproxies 系統數據表。
dc_admin固定資料庫角色必須具有存取 Proxy 的許可權。 如需詳細資訊,請參閱 建立 SQL Server Agent Proxy。
[ @proxy_name = ] N'proxy_name'
Proxy 帳戶的名稱。
@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_mode0,必須指定@schedule_uid或@schedule_name。 當@collection_mode1,如果指定,則會忽略@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。
[ @collection_set_id = ] collection_set_id 輸出
收集組的唯一本機標識碼。 @collection_set_id是 int 類型的 OUTPUT 參數。
[ @collection_set_uid = ] 「collection_set_uid」輸出
收集組的 GUID。 @collection_set_uid是 uniqueidentifier 類型的 OUTPUT 參數。
傳回碼值
0 (成功) 或 1 (失敗)。
備註
sp_syscollector_create_collection_set 必須在系統資料庫的內容 msdb 中執行。
權限
需要dc_admin的成員資格(具有 EXECUTE 許可權)固定資料庫角色才能執行此程式。
範例
A. 使用預設值建立收集組
下列範例只會指定必要的參數來建立收集組。 @collection_mode並非必要,但預設收集模式 (cached) 需要指定排程標識碼或排程名稱。
USE msdb;
GO
DECLARE @collection_set_id AS 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 AS INT;
DECLARE @collection_set_uid AS UNIQUEIDENTIFIER;
SET @collection_set_uid = NEWID();
EXECUTE 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;
GO