Freigeben über


sp_syscollector_create_collection_item (Transact-SQL)

Erstellt ein Sammelelement in einem benutzerdefinierten Sammlungssatz. Ein Sammelelement definiert die zu sammelnden Daten und die Häufigkeit, mit der die Daten gesammelt werden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_syscollector_create_collection_item 
      [ @collection_set_id = ] collection_set_id 
        , [ @collector_type_uid = ] 'collector_type_uid'
        , [ @name = ] 'name' 
        , [ [ @frequency = ] frequency ]
        , [ @parameters = ] 'parameters'
        , [ @collection_item_id = ] collection_item_id OUTPUT

Argumente

  • [ @collection_set_id = ] collection_set_id
    Der eindeutige lokale Bezeichner für den Sammlungssatz. collection_set_id ist vom Datentyp int.

  • [ @collector_type_uid = ] 'collector_type_uid'
    GUID, der den Sammlertyp angibt, der für dieses Element verwendet werden soll. collector_type_uid ist uniqueidentifier ohne Standardwert. Um eine Liste von Sammlertypen zu erhalten, fragen Sie die syscollector_collector_types-Systemsicht ab.

  • [ @name = ] 'name'
    Der Name des Sammelelements. name ist vom Datentyp sysname und kann keine leere Zeichenfolge oder NULL sein.

    name muss eindeutig sein. Wenn Sie eine Liste der aktuellen Namen von Sammelelementen abrufen möchten, fragen Sie die syscollector_collection_items-Systemsicht ab.

  • [ @frequency = ] frequency
    Mithilfe dieses Parameters wird (in Sekunden) angegeben, wie häufig Daten durch dieses Sammelelement aufgezeichnet werden. frequency ist vom Datentyp int und hat den Standardwert 5. Der minimale Wert, der angegeben werden kann, ist 5 Sekunden.

    Wenn der Sammlungssatz auf den Modus ohne Zwischenspeicherung festgelegt ist, wird die Häufigkeit ignoriert, da dieser Modus bewirkt, dass sowohl die Datensammlung als auch der Datenupload dem Zeitplan entsprechend stattfinden, der für den Sammlungssatz angegeben wurde. Um den Sammlungsmodus des Sammlungssatzes anzuzeigen, fragen Sie die syscollector_collection_sets-Systemsicht ab.

  • [ @parameters = ] 'parameters'
    Die Eingabeparameter für den Sammlertyp. parameters ist xml mit dem Standardwert NULL. Das parameters-Schema muss dem Schema für Parameter des Sammlertyps entsprechen.

  • [ @collection_item_id = ] collection_item_id
    Der eindeutige Bezeichner, der das Sammlungssatzelement identifiziert. collection_item_id ist vom Datentyp int und erzeugt OUTPUT.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_syscollector_create_collection_item muss im Kontext der msdb-Systemdatenbank ausgeführt werden.

Der Sammlungssatz, dem das Sammelelement hinzugefügt wird, muss beendet werden, bevor das Sammelelement erstellt wird. Systemsammlungssätzen können keine Sammelelemente hinzugefügt werden.

Berechtigungen

Damit diese Prozedur ausgeführt werden kann, ist die Mitgliedschaft in der festen Datenbankrolle dc_admin (mit EXECUTE-Berechtigung) erforderlich.

Beispiele

Im folgenden Beispiel wird ein Sammelelement auf Grundlage des Sammlungstyps Generic T-SQL Query Collector Type erstellt und dem Sammlungssatz Simple collection set test 2 hinzugefügt. Um den angegebenen Sammlungssatz zu erstellen, führen Sie Beispiel B in sp_syscollector_create_collection_set (Transact-SQL) aus.

USE msdb;
GO
DECLARE @collection_item_id int;
DECLARE @collection_set_id int = (SELECT collection_set_id 
                                  FROM syscollector_collection_sets
                                  WHERE name = N'Simple collection set test 2');
DECLARE @collector_type_uid uniqueidentifier = 
    (SELECT collector_type_uid
     FROM syscollector_collector_types
     WHERE name = N'Generic T-SQL Query Collector Type');
DECLARE @params xml = 
    CONVERT(xml, N'<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
            <Query>
                <Value>SELECT * FROM sys.objects</Value>
                <OutputTable>MyOutputTable</OutputTable>
            </Query>
            <Databases> 
                <Database> UseSystemDatabases = "true" 
                           UseUserDatabases = "true"
                </Database>
            </Databases>
         </ns:TSQLQueryCollector>');

EXEC sp_syscollector_create_collection_item
    @collection_set_id = @collection_set_id,
    @collector_type_uid = @collector_type_uid,
    @name = 'My custom TSQL query collector item',
    @frequency = 6000,
    @parameters = @params,
    @collection_item_id = @collection_item_id OUTPUT;