Bagikan melalui


sp_syscollector_update_collection_item (T-SQL)

Berlaku untuk: SQL Server

Digunakan untuk mengubah properti item koleksi yang ditentukan pengguna atau untuk mengganti nama item koleksi yang ditentukan pengguna.

Konvensi sintaks transact-SQL

Sintaks

sp_syscollector_update_collection_item
    [ [ @collection_item_id = ] collection_item_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @frequency = ] frequency ]
    [ , [ @parameters = ] N'parameters' ]
[ ; ]

Argumen

[ @collection_item_id = ] collection_item_id

Pengidentifikasi unik yang mengidentifikasi item koleksi. @collection_item_id int, dengan default NULL. @collection_item_id harus memiliki nilai jika @name adalah NULL.

[ @name = ] N'name'

Nama item koleksi. @name adalah sysname, dengan default NULL. @name harus memiliki nilai jika @collection_item_id adalah NULL.

[ @new_name = ] N'new_name'

Nama baru untuk item koleksi. @new_name adalah sysname, dengan default NULL, dan jika digunakan, tidak boleh berupa string kosong.

@new_name harus unik. Untuk daftar nama item koleksi saat ini, kueri syscollector_collection_items tampilan sistem.

[ @frequency = ] frekuensi

Frekuensi (dalam detik) data dikumpulkan oleh item koleksi ini. @frequency int, dengan default 5, nilai minimum yang dapat ditentukan.

[ @parameters = ] N'parameters'

Parameter input untuk item koleksi. @parameters adalah xml, dengan default string kosong. Skema @parameters harus cocok dengan skema parameter jenis kolektor.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

Jika kumpulan diatur ke mode non-cache, mengubah frekuensi diabaikan karena mode ini menyebabkan pengumpulan dan pengunggahan data terjadi pada jadwal yang ditentukan untuk kumpulan koleksi. Untuk menampilkan status kumpulan, jalankan kueri berikut. Ganti <collection_item_id> dengan ID item koleksi yang akan diperbarui.

USE msdb;
GO

SELECT cs.collection_set_id,
    collection_set_uid,
    cs.name,
    'is running' = CASE
        WHEN is_running = 0
            THEN 'No'
        ELSE 'Yes'
        END,
    'cache mode' = CASE
        WHEN collection_mode = 0
            THEN 'Cached mode'
        ELSE 'Non-cached mode'
        END
FROM syscollector_collection_sets AS cs
INNER JOIN syscollector_collection_items AS ci
    ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = < collection_item_id >;
GO

Izin

Memerlukan keanggotaan dalam peran database tetap dc_admin atau dc_operator (dengan izin EXECUTE) untuk menjalankan prosedur ini. Meskipun dc_operator dapat menjalankan prosedur tersimpan ini, anggota peran ini terbatas pada properti yang dapat mereka ubah. Properti berikut ini hanya dapat diubah dengan dc_admin:

  • @new_name
  • @parameters

Contoh

Contoh berikut didasarkan pada item koleksi yang dibuat dalam contoh yang ditentukan dalam sp_syscollector_create_collection_item.

J. Mengubah frekuensi pengumpulan

Contoh berikut mengubah frekuensi pengumpulan untuk item koleksi yang ditentukan.

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @frequency = 3000;
GO

B. Mengganti nama item koleksi

Contoh berikut mengganti nama item koleksi.

USE msdb;
GO

EXEC sp_syscollector_update_collection_item
    @name = N'My custom T-SQL query collector item',
    @new_name = N'My modified T-SQL item';
GO

C. Mengubah parameter item koleksi

Contoh berikut mengubah parameter yang terkait dengan item koleksi. Pernyataan yang <Value> ditentukan dalam atribut diubah dan UseSystemDatabases atribut diatur ke false. Untuk menampilkan parameter saat ini untuk item ini, kueri kolom parameter dalam syscollector_collection_items tampilan sistem. Anda mungkin perlu mengubah nilai untuk @collection_item_id.

USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@collection_item_id = 9,
@parameters = '
    <ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
        <Query>
            <Value>SELECT * FROM sys.dm_db_index_usage_stats</Value>
            <OutputTable>MyOutputTable</OutputTable>
        </Query>
        <Databases>
            <Database> UseSystemDatabases = "false"
                       UseUserDatabases = "true"</Database>
        </Databases>
    </ns:TSQLQueryCollector>';
GO