sp_updateextendedproperty (Transact-SQL)

Aggiorna il valore di una proprietà estesa esistente.

Icona di collegamento a un argomentoConvenzioni 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.

    ms186885.note(it-it,SQL.90).gifImportante:
    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

Guida in linea e informazioni

Assistenza su SQL Server 2005