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