sp_syscollector_update_collection_item (Transact-SQL)
Wird verwendet, um die Eigenschaften eines benutzerdefinierten Auflistelements zu ändern oder um ein benutzerdefiniertes Auflistelement umzubenennen.
Syntax
sp_syscollector_update_collection_item
[ [ @collection_item_id = ] collection_item_id ]
, [ [ @name = ] 'name' ]
, [ [ @new_name = ] 'new_name' ]
, [ [ @frequency = ] frequency ]
, [ [ @parameters = ] 'parameters' ]
Argumente
[ @collection\_item\_id = ] collection_item_id
Der eindeutige lokale Bezeichner, der das Auflistelement identifiziert. collection_item_id ist vom Datentyp int mit einem Standardwert von NULL. collection_item_id muss einen Wert haben, wenn name NULL ist.[ @name = ] 'name'
Der Name des Auflistelements. name ist sysname mit dem Standardwert NULL. name muss über einen Wert verfügen, wenn collection_item_id gleich NULL ist.[ @new\_name = ] 'new_name'
Der neue Name des Auflistelements. new_name ist vom Datentyp sysname und darf, wenn verwendet, keine leere Zeichenfolge sein.new_name muss eindeutig sein. Wenn Sie eine Liste der aktuellen Namen von Auflistelementen abrufen möchten, fragen Sie die syscollector_collection_items-Systemsicht ab.
[ @frequency = ] frequency
Die Häufigkeit (in Sekunden) mit der Daten durch dieses Auflistelement aufgezeichnet werden. frequency ist vom Datentyp int und hat den Standardwert 5. Dies ist der Minimalwert, der angegeben werden kann.[ @parameters = ] 'parameters'
Die Eingabeparameter für das Auflistelement. parameters ist xml mit dem Standardwert NULL. Das parameters-Schema muss dem Schema für Parameter des Auflistertyps entsprechen.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Hinweise
Wenn der Auflistsatz auf den Modus ohne Zwischenspeicherung festgelegt ist, werden Änderungen der Häufigkeit ignoriert, da dieser Modus bewirkt, dass sowohl die Datenauflistung als auch der Datenupload dem Zeitplan entsprechend stattfinden, der für den Auflistsatz angegeben wurde. Zum Anzeigen des Status des Auflistsatzes führen Sie die folgende Abfrage aus. Ersetzen Sie <collection_item_id> durch die ID des zu aktualisierenden Auflistelements.
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
JOIN syscollector_collection_items AS ci
ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = <collection_item_id>;
Berechtigungen
Zum Ausführen dieser Prozedur ist die Mitgliedschaft in der festen Datenbankrolle dc_admin oder dc_operator (mit EXECUTE-Berechtigung) erforderlich. Obwohl die dc_operator-Rolle diese gespeicherte Prozedur ausführen kann, können die Eigenschaften von den Mitgliedern dieser Rolle nur begrenzt geändert werden. Die folgenden Eigenschaften können nur von dc_admin geändert werden:
@new\_name
@parameters
Beispiele
Die folgenden Beispiele basieren auf dem Auflistelement, das in dem in sp_syscollector_create_collection_item (Transact-SQL) definierten Beispiel erstellt wurde.
A. Ändern der Auflistungshäufigkeit
Im folgenden Beispiel wird die Auflistungshäufigkeit für das angegebene Auflistelement geändert.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom TSQL query collector item',
@frequency = 3000;
GO
B. Umbenennen eines Auflistelements
Im folgenden Beispiel wird ein Auflistelement umbenannt.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom TSQL query collector item',
@new_name = N'My modified TSQL item';
GO
C. Ändern der Parameter eines Auflistelements
Im folgenden Beispiel werden die dem Auflistelement zugeordneten Parameter geändert. Die im <Value>-Attribut definierte Anweisung wird geändert, und das UseSystemDatabases-Attribut wird auf false festgelegt. Wenn Sie aktuellen Parameter für dieses Element anzeigen möchten, fragen Sie die Spalte Parameter in der syscollector_collection_items-Systemsicht 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
Siehe auch
.gif)