sp_syscollector_create_collection_set (Transact-SQL)
適用於: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'
收集組的名稱。 @name是 sysname,不能是空字串或 NULL
。
@name必須是唯一的。 如需目前收集組名稱的清單,請查詢 syscollector_collection_sets
系統檢視。
[ @target = ] N'target'
保留供未來使用。 @target為 nvarchar(128),預設值為 NULL
。
[ @collection_mode = ] collection_mode
@collection_mode為 smallint,預設值為 0
。
指定收集數據和儲存的方式。 @collection_mode為 smallint,預設值0
為 ,而且可以具有下列其中一個值:
0
:快取模式。 數據收集和上傳會依個別排程進行。 指定連續收集的快取模式。1
:非快取模式。 數據收集和上傳的排程相同。 為臨機操作集合或快照集集合指定非快取模式。
當@collection_mode為 時,必須指定@schedule_uid或@schedule_name。0
[ @days_until_expiration = ] days_until_expiration
收集的數據儲存在管理數據倉儲中的天數。 @days_until_expiration是smallint,預設值730
為 (兩年)。 @days_until_expiration必須是 0
或正整數。
[ @proxy_id = ] proxy_id
SQL Server Agent Proxy 帳戶的唯一標識碼。 @proxy_id為 int,預設值為 NULL
。 如果指定, @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_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
。
[ @collection_set_id = ] collection_set_id OUTPUT
收集組的唯一本機標識碼。 @collection_set_id是 int 類型的 OUTPUT 參數。
[ @collection_set_uid = ] 'collection_set_uid' OUTPUT
收集組的 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 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;
GO