Teilen über


sp_syscollector_update_collection_item (Transact-SQL)

Gilt für: SQL Server

Wird verwendet, um die Eigenschaften eines benutzerdefinierten Sammelelements zu ändern oder um ein benutzerdefiniertes Sammelelement umzubenennen.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @collection_item_id = ] collection_item_id

Der eindeutige Bezeichner, der das Sammlungselement identifiziert. @collection_item_id ist int mit einem Standardwert von NULL. @collection_item_id muss einen Wert aufweisen, wenn @name istNULL.

[ @name = ] N'name'

Der Name des Auflistungselements. @name ist "sysname" mit einem Standardwert von NULL. @name muss einen Wert aufweisen, wenn @collection_item_id istNULL.

[ @new_name = ] N'new_name'

Der neue Name für das Sammlungselement. @new_name ist "sysname" mit dem Standardwert "NULL, und kann bei Verwendung keine leere Zeichenfolge sein.

@new_name muss eindeutig sein. Fragen Sie für eine Liste der aktuellen Auflistungselementnamen die syscollector_collection_items Systemansicht ab.

[ @frequency = ] Häufigkeit

Die Häufigkeit (in Sekunden), mit der Daten von diesem Sammlungselement erfasst werden. @frequency ist mit einem Standardwert von 5"int" der Minimalwert, der angegeben werden kann.

[ @parameters = ] N'parameters'

Die Eingabeparameter für das Sammelelement. @parameters ist XML, mit einem Standardwert einer leeren Zeichenfolge. Das @parameters Schema muss mit dem Parameterschema des Sammeltyps übereinstimmen.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Hinweise

Wenn der Sammlungssatz auf den Modus ohne Zwischenspeicherung festgelegt ist, werden Änderungen der 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. Zum Anzeigen des Status des Sammlungssatzes führen Sie die folgende Abfrage aus. Ersetzen Sie <collection_item_id> durch die ID des zu aktualisierenden Sammelelements.

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

Berechtigungen

Erfordert die Mitgliedschaft in der dc_admin oder der festen Datenbankrolle dc_operator (mit EXECUTE-Berechtigung), um dieses Verfahren auszuführen. Obwohl dc_operator diese gespeicherte Prozedur ausführen können, sind Member dieser Rolle in den Eigenschaften eingeschränkt, die sie ändern können. Die folgenden Eigenschaften können nur von dc_admin geändert werden:

  • @new_name
  • @parameters

Beispiele

Die folgenden Beispiele basieren auf dem auflistungselement, das im in sp_syscollector_create_collection_item definierten Beispiel erstellt wurde.

A. Ändern der Sammlungshäufigkeit

Im folgenden Beispiel wird die Sammlungshäufigkeit für das angegebene Sammelelement geändert.

USE msdb;
GO

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

B. Umbenennen eines Sammlungselements

Im folgenden Beispiel wird ein Sammelelement umbenannt.

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. Ändern der Parameter eines Sammlungselements

Im folgenden Beispiel werden die dem Sammelelement zugeordneten Parameter geändert. Die im <Value>-Attribut definierte Anweisung wird geändert, und das UseSystemDatabases-Attribut wird auf false festgelegt. Um die aktuellen Parameter für dieses Element anzuzeigen, fragen Sie die Parameterspalte in der syscollector_collection_items Systemansicht ab. Möglicherweise müssen Sie den Wert für @collection_item_id ändern.

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