core.sp_create_snapshot (Transact-SQL)

適用於:SQL Server

在管理數據倉儲檢視中插入數據列 core.snapshots 。 每次上傳套件開始將數據上傳至管理數據倉儲時,都會呼叫此程式。

Transact-SQL 語法慣例

語法

core.sp_create_snapshot [ @collection_set_uid = ] 'collection_set_uid'
    , [ @collector_type_uid = ] 'collector_type_uid'
    , [ @machine_name = ] 'machine_name'
    , [ @named_instance = ] 'named_instance'
    , [ @log_id = ] log_id
    , [ @snapshot_id = ] snapshot_id OUTPUT
[ ; ]

引數

[ @collection_set_uid = ] 'collection_set_uid'

收集組的 GUID。 @collection_set_uid為 uniqueidentifier,沒有預設值。 若要取得 GUID,請在資料庫中查詢dbo.syscollector_collection_sets檢視 msdb

[ @collector_type_uid = ] 'collector_type_uid'

收集器類型的 GUID。 @collector_type_uid是 uniqueidentifier,沒有預設值。 若要取得 GUID,請在資料庫中查詢dbo.syscollector_collector_types檢視 msdb

[ @machine_name = ] 'machine_name'

收集組所在的伺服器名稱。 @machine_name為 sysname,沒有預設值。

[ @named_instance = ] 'named_instance'

收集組的實例名稱。 @named_instance為 sysname,沒有預設值。

[ @log_id = ] log_id

對應至收集組事件記錄檔之伺服器上收集數據的唯一標識符。 @log_id是 bigint,沒有預設值。 若要取得log_id的值,請在資料庫中查詢dbo.syscollector_execution_log檢視msdb

[ @snapshot_id = ] snapshot_id

插入檢視 core.snapshots 之數據列的唯一標識符。 @snapshot_id為 int,並傳回為 OUTPUT。

傳回碼值

0 (成功)或 1 (失敗)。

備註

每次上傳套件開始將資料上傳至管理資料倉儲時,資料收集器運行時間元件會呼叫 core.sp_create_snapshot

此程式會檢查是否:

  • collection_set_uid符合數據表中的 core.source_info_internal 現有專案。

  • collector_type_uid符合檢視中 core.supported_collector_types 現有的專案。

如果上述任一項檢查失敗,程式就會失敗並傳回錯誤。

權限

需要mdw_writer的成員資格(具有 EXECUTE 許可權)固定資料庫角色。

範例

下列範例會建立磁碟使用量收集組的快照集、將它新增至管理數據倉儲,並傳回快照集標識符。 在此範例中,會使用預設實例。

USE <management_data_warehouse>;
DECLARE @snapshot_id int;
EXEC core.sp_create_snapshot
    @collection_set_uid = '7B191952-8ECF-4E12-AEB2-EF646EF79FEF',
    @collector_type_uid = '302E93D1-3424-4BE7-AA8E-84813ECF2419',
    @machine_name = '<computername>',
    @named_instance = 'MSSQLSERVER',
    @log_id = 11, -- ID of the log for the collection set
    @snapshot_id = @snapshot_id OUTPUT;