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 utilizzarle in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui sono state implementate. 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.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
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.
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, con l'eccezione del ruolo db_ddladmin che non può aggiungere proprietà al database stesso o a utenti e ruoli.
Gli utenti possono aggiornare le proprietà estese degli oggetti di cui sono proprietari oppure per i quali dispongono delle autorizzazioni ALTER o CONTROL.
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 AdventureWorks2012;
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 AdventureWorks2012 e quindi il valore di tale proprietà viene aggiornato.
USE AdventureWorks2012;
GO
EXEC sp_addextendedproperty
@name = N'NewCaption', @value = 'AdventureWorks2012 Sample OLTP Database';
GO
USE AdventureWorks2012;
GO
EXEC sp_updateextendedproperty
@name = N'NewCaption', @value = 'AdventureWorks2012 Sample Database';
GO
Vedere anche
Riferimento
Stored procedure del Motore di database (Transact-SQL)
sys.fn_listextendedproperty (Transact-SQL)
sp_addextendedproperty (Transact-SQL)