sp_syscollector_update_collection_item (Transact-SQL)
Wird verwendet, um die Eigenschaften eines benutzerdefinierten Sammelelements zu ändern oder um ein benutzerdefiniertes Sammelelement 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 Sammelelement 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 Sammelelements. 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 Sammelelements. 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 Sammelelementen abrufen möchten, fragen Sie die syscollector_collection_items-Systemsicht ab.
[ @frequency = ] frequency
Die Häufigkeit (in Sekunden) mit der Daten durch dieses Sammelelement 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 Sammelelement. parameters ist xml mit dem Standardwert NULL. Das parameters-Schema muss dem Schema für Parameter des Sammlertyps entsprechen.
Rückgabecodewerte
0 (Erfolg) 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
JOIN syscollector_collection_items AS ci
ON ci.collection_set_id = cs.collection_set_id
WHERE collection_item_id = <collection_item_id>;
Berechtigungen
Damit dieser Vorgang ausgeführt werden kann, 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 Sammelelement, das in dem in sp_syscollector_create_collection_item (Transact-SQL) 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 TSQL query collector item',
@frequency = 3000;
GO
B. Umbenennen eines Sammelelements
Im folgenden Beispiel wird ein Sammelelement 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 Sammelelements
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. Wenn Sie die aktuellen Parameter für dieses Element anzeigen möchten, fragen Sie die Parameter-Spalte 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