sp_syscollector_update_collection_item (Transact-SQL)
Si applica a: SQL Server
Consente di rinominare un elemento della raccolta definito dall'utente o di modificarne le proprietà.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_syscollector_update_collection_item
[ [ @collection_item_id = ] collection_item_id ]
[ , [ @name = ] N'name' ]
[ , [ @new_name = ] N'new_name' ]
[ , [ @frequency = ] frequency ]
[ , [ @parameters = ] N'parameters' ]
[ ; ]
Argomenti
[ @collection_item_id = ] collection_item_id
Identificatore univoco che identifica l'elemento della raccolta. @collection_item_id è int, con il valore predefinito NULL
. @collection_item_id deve avere un valore se @name è NULL
.
[ @name = ] N'name'
Nome dell'elemento della raccolta. @name è sysname, con un valore predefinito .NULL
@name deve avere un valore se @collection_item_id è NULL
.
[ @new_name = ] N'new_name'
Nuovo nome per l'elemento della raccolta. @new_name è sysname, con un valore predefinito NULL
, e se usato, non può essere una stringa vuota.
@new_name deve essere univoco. Per un elenco dei nomi degli elementi della raccolta correnti, eseguire una query sulla syscollector_collection_items
visualizzazione di sistema.
[ @frequency = ] frequenza
Frequenza (in secondi) che i dati vengono raccolti dall'elemento della raccolta. @frequency è int, con un valore predefinito , 5
il valore minimo che può essere specificato.
[ @parameters = ] N'parameters'
Parametri di input per l'elemento della raccolta. @parameters è xml, con un valore predefinito di una stringa vuota. Lo schema @parameters deve corrispondere allo schema dei parametri del tipo di agente di raccolta.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
Se il set di raccolta è impostato sulla modalità non in cache, la modifica della frequenza viene ignorata in quanto in questa modalità la raccolta e il caricamento dei dati vengono eseguiti in base alla pianificazione specificata per il set di raccolta. Per visualizzare lo stato del set di raccolta, eseguire la query seguente. Sostituire <collection_item_id>
con l'ID dell'elemento della raccolta da aggiornare.
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
Autorizzazioni
Per eseguire questa procedura, è richiesta l'appartenenza al ruolo predefinito del database dc_admin o dc_operator (con autorizzazione EXECUTE). Sebbene dc_operator possibile eseguire questa stored procedure, i membri di questo ruolo sono limitati nelle proprietà che possono modificare. Le proprietà seguenti possono essere modificate solo da dc_admin:
- @new_name
- @parameters
Esempi
Gli esempi seguenti si basano sull'elemento della raccolta creato nell'esempio definito in sp_syscollector_create_collection_item.
R. Modificare la frequenza di raccolta
Nell'esempio seguente viene modificata la frequenza di raccolta per l'elemento della raccolta specificato.
USE msdb;
GO
EXEC sp_syscollector_update_collection_item
@name = N'My custom T-SQL query collector item',
@frequency = 3000;
GO
B. Rinominare un elemento della raccolta
Nell'esempio seguente viene rinominato un elemento della raccolta.
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. Modificare i parametri di un elemento della raccolta
Nell'esempio seguente vengono modificati i parametri associati all'elemento della raccolta. L'istruzione definita all'interno dell'attributo <Value>
viene modificata e l'attributo UseSystemDatabases
viene impostato su false. Per visualizzare i parametri correnti per questo elemento, eseguire una query sulla colonna dei parametri nella syscollector_collection_items
visualizzazione di sistema. Potrebbe essere necessario modificare il valore per @collection_item_id.
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