sp_updateextendedproperty (Transact-SQL)
Aggiorna il valore di una proprietà estesa esistente.
Convenzioni della sintassi Transact-SQL
Sintassi
sp_updateextendedproperty
[ @name = ]{ 'property_name' }
[, [ @value = ]{ 'value' }
[, [ @level0type = ]{ 'level0_object_type' }
, [ @level0name = ]{ 'level0_object_name' }
[, [ @level1type = ]{ 'level1_object_type' }
, [ @level1name = ]{ 'level1_object_name' }
[, [ @level2type = ]{ 'level2_object_type' }
, [ @level2name = ]{ 'level2_object_name' }
]
]
]
]
Argomenti
- [ @name= ]{ 'property_name'}
Nome della proprietà da aggiornare. property_name è di tipo sysname e non può essere NULL.
- [ @value= ]{ 'value'}
Valore associato alla proprietà. value è di tipo sql_variant e il valore predefinito è NULL. La dimensione di value non può superare 7.500 byte.
[ @level0type= ]{ 'level0_object_type'}
Utente o tipo definito dall'utente. level0_object_type è di tipo varchar(128) e il valore predefinito è NULL. I possibili valori sono ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE e NULL.Importante: I tipi USER e TYPE come tipi di livello 0 verranno rimossi in una versione futura di SQL Server. Evitare pertanto di utilizzarli in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui sono stati implementati. Utilizzare SCHEMA come tipo di livello 0 anziché USER. Per TYPE utilizzare SCHEMA come tipo di livello 0 e TYPE come tipo di livello 1.
- [ @level0name= ]{ 'level0_object_name'}
Nome del tipo di oggetto di livello 1 specificato. level0_object_name è di tipo sysname e il valore predefinito è NULL.
- [ @level1type= ]{ 'level1_object_type'}
Tipo di oggetto di livello 1. level1_object_type è di tipo varchar(128) e il valore predefinito è NULL. I possibili valori sono AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TYPE, VIEW, XML SCHEMA COLLECTION e NULL.
- [ @level1name= ]{ 'level1_object_name'}
Nome del tipo di oggetto di livello 1 specificato. level1_object_name è di tipo sysname e il valore predefinito è NULL.
- [ @level2type= ]{ 'level2_object_type'}
Tipo di oggetto di livello 2. level2_object_type è di tipo varchar(128) e il valore predefinito è NULL. I possibili valori sono COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER e NULL..
- [ @level2name= ]{ 'level2_object_name'}
Nome del tipo di oggetto di livello 2 specificato. level2_object_name è di tipo sysname e il valore predefinito è NULL.
Osservazioni
Ai fini della definizione delle proprietà estese, gli oggetti inclusi in un database di SQL Server vengono classificati in base a tre livelli, ovvero 0, 1 e 2. Il livello 0 è il livello più alto e viene definito come oggetti inclusi nell'ambito del database. Gli oggetti di livello 1 sono inclusi nell'ambito di uno schema o utente, mentre gli oggetti di livello 2 sono contenuti dagli oggetti di livello 1. È possibile definire le proprietà estese per gli oggetti di qualsiasi livello. È necessario qualificare i riferimenti a un oggetto in un livello mediante i nomi degli oggetti proprietari di livello superiore o che li contengono. Per l'elenco completo degli oggetti e dei relativi tipi di livello 0, 1 e 2 validi, vedere Utilizzo di proprietà estese su oggetti di database.
In presenza di valori validi per property_name e value, se tutti i tipi e i nomi di oggetto sono Null, la proprietà aggiornata appartiene al database corrente.
Autorizzazioni
I membri dei ruoli predefiniti del database db_owner e db_ddladmin possono aggiornare le proprietà estese di qualsiasi oggetto, anche se il ruolo db_ddladmin non può aggiungere proprietà al database stesso oppure a utenti o ruoli.
Gli utenti possono aggiornare le proprietà estese degli oggetti di cui sono proprietari oppure per i quali dispongono delle autorizzazioni ALTER o CONTROL. Per l'elenco completo delle autorizzazioni richieste, vedere Utilizzo di proprietà estese su oggetti di database.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Esempi
A. Aggiornamento di una proprietà estesa in una colonna
Nell'esempio seguente viene aggiornato il valore della proprietà Caption
nella colonna ID
della tabella T1
.
USE AdventureWorks;
GO
CREATE TABLE T1 (id int , name char (20));
GO
EXEC sp_addextendedproperty
@name = N'Caption', @value = N'Employee ID',
@level0type = N'Schema', @level0name = dbo,
@level1type = N'Table', @level1name = T1,
@level2type = N'Column', @level2name = id;
GO
--Update the extended property.
EXEC sp_updateextendedproperty
@name = N'Caption', @value = 'Employee ID must be unique.',
@level0type = N'Schema', @level0name = dbo,
@level1type = N'Table', @level1name = T1,
@level2type = N'Column', @level2name = id;
GO
B. Aggiornamento di una proprietà estesa in un database
Nell'esempio seguente viene innanzitutto creata una proprietà estesa nel database di esempio AdventureWorks
e quindi il valore di tale proprietà viene aggiornato.
USE AdventureWorks;
GO
EXEC sp_addextendedproperty
@name = N'NewCaption', @value = 'AdventureWorks Sample OLTP Database';
GO
USE AdventureWorks;
GO
EXEC sp_updateextendedproperty
@name = N'NewCaption', @value = 'AdventureWorks Sample Database';
GO
Vedere anche
Riferimento
Stored procedure del Motore di database (Transact-SQL)
fn_listextendedproperty (Transact-SQL)
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)
Altre risorse
Utilizzo di proprietà estese su oggetti di database
Visualizzazione di proprietà estese