Freigeben über


sp_updateextendedproperty (Transact-SQL)

Aktualisiert den Wert einer vorhandenen erweiterten Eigenschaft.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

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' }
                     ]
              ]
        ]
    ]

Argumente

  • [ @name= ]{ 'property_name'}
    Der Name der zu aktualisierenden Eigenschaft. property_name ist vom Datentyp sysname und darf nicht NULL sein.

  • [ @value= ]{ 'value'}
    Der Wert, der der Eigenschaft zugeordnet ist. value ist vom Datentyp sql_variant. Der Standardwert ist NULL. value darf nicht größer als 7.500 Bytes sein.

  • [ @level0type= ]{ 'level0_object_type'}
    Der Benutzer oder benutzerdefinierte Typ. level0_object_type ist vom Datentyp varchar(128). Der Standardwert ist NULL. Gültige Eingabewerte sind ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE und NULL.

    Wichtig

    USER und TYPE als Typen der Ebene 0 werden in einer zukünftigen Version von SQL Server nicht mehr unterstützt.Vermeiden Sie die Verwendung dieser Funktionen bei neuen Entwicklungsarbeiten, und planen Sie die Änderung von Anwendungen, die diese Funktionen zurzeit verwenden.Verwenden Sie SCHEMA anstelle von USER als Typ der Ebene 0.Verwenden Sie SCHEMA statt TYPE als Typ der Ebene 0 und TYPE als Typ der Ebene 1.

  • [ @level0name= ]{ 'level0_object_name'}
    Der Name des angegebenen Objekttyps der Ebene 1. level0_object_name ist vom Datentyp sysname. Der Standardwert ist NULL.

  • [ @level1type= ]{ 'level1_object_type'}
    Der Typ des Objekts der Ebene 1. level1_object_type ist vom Datentyp varchar(128). Der Standardwert ist NULL. Gültige Eingabewerte sind AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TYPE, VIEW, XML SCHEMA COLLECTION und NULL.

  • [ @level1name= ]{ 'level1_object_name'}
    Der Name des angegebenen Objekttyps der Ebene 1. level1_object_name ist vom Datentyp sysname. Der Standardwert ist NULL.

  • [ @level2type= ]{ 'level2_object_type'}
    Der Typ des Objekts der Ebene 2. level2_object_type ist vom Datentyp varchar(128). Der Standardwert ist NULL. Gültige Eingabewerte sind COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER und NULL.

  • [ @level2name= ]{ 'level2_object_name'}
    Der Name des angegebenen Objekttyps der Ebene 2. level2_object_name ist vom Datentyp sysname. Der Standardwert ist NULL.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

Für das Angeben erweiterter Eigenschaften werden die Objekte in einer SQL Server-Datenbank in drei Ebenen (0, 1 und 2) unterteilt. Die Ebene 0 ist die höchste Ebene und ist definiert als Objekte, die im Datenbankbereich enthalten sind. Objekte der Ebene 1 sind in einem Schema- oder Benutzerbereich enthalten, und Objekte der Ebene 2 sind in Objekten der Ebene 1 enthalten. Erweiterte Eigenschaften können für Objekte auf einer dieser Ebenen definiert werden. Verweise auf ein Objekt einer Ebene müssen mit den Namen der Objekte der höheren Ebene gekennzeichnet werden, die diese besitzen oder enthalten.

Bei gültigen Werten für property_name und value gehört die aktualisierte Eigenschaft zur aktuellen Datenbank, wenn alle Objekttypen und Namen NULL sind.

Berechtigungen

Mitglieder der festen Datenbankrollen db_owner und db_ddladmin können die erweiterten Eigenschaften jedes Objekts mit einer Ausnahme aktualisieren: db_ddladmin kann der Datenbank selbst oder Benutzern bzw. Rollen keine Eigenschaften hinzufügen.

Die Benutzer können erweiterte Eigenschaften für Objekte aktualisieren, die sie besitzen oder für die sie die ALTER- oder CONTROL-Berechtigung haben.

Beispiele

A.Aktualisieren einer erweiterten Eigenschaft für eine Spalte

Im folgenden Beispiel wird der Wert der Caption-Eigenschaft für die ID-Spalte in der T1-Tabelle aktualisiert.

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.Aktualisieren einer erweiterten Eigenschaft für eine Datenbank

Im folgenden Beispiel wird zunächst eine erweiterte Eigenschaft für die AdventureWorks2012 -Beispieldatenbank erstellt und dann der Wert dieser Eigenschaft aktualisiert.

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

Siehe auch

Verweis

Gespeicherte Prozeduren für das Datenbankmodul (Transact-SQL)

sys.fn_listextendedproperty (Transact-SQL)

sp_addextendedproperty (Transact-SQL)

sp_dropextendedproperty (Transact-SQL)

sys.extended_properties (Transact-SQL)