共用方式為


sp_syscollector_create_collection_set (Transact-SQL)

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

主題連結圖示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 Agent Proxy 帳戶的唯一識別碼。proxy_id 是 int,預設值為 NULL。如果有指定的話,proxy_name 必須為 NULL。若要取得 proxy_id,請查詢 sysproxies 系統資料表。dc_admin 固定資料庫角色必須具有存取此 Proxy 的權限。如需詳細資訊,請參閱<建立 SQL Server Agent Proxy>。

  • [ @proxy\_name = ] '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 = ] '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 是 int,具有 OUTPUT,而且是必要項目。

  • [ @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 不是必要的,但是預設收集模式 (快取) 要求指定排程識別碼或排程名稱。

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;