Share via


sp_syscollector_create_collection_set (Transact-SQL)

適用於:SQL Server

建立新的收集組。 您可以使用這個預存程式來建立資料收集的自訂收集組。

警告

如果設定為 Proxy 的 Windows 帳戶是尚未登入的非互動式或互動式使用者,配置檔目錄將不會存在,而且建立預備目錄將會失敗。 因此,如果您在域控制器上使用 Proxy 帳戶,您必須指定至少使用過一次的互動式帳戶,以確保已建立設定文件目錄。

Transact-SQL 語法慣例

語法

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_name0

[ @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