sp_updateextendedproperty (Transact-SQL)

Aktualisiert den Wert einer vorhandenen erweiterten Eigenschaft.

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 Eigenschaft, die aktualisiert werden soll. 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 der benutzerdefinierte Typ. level0_object_type ist vom Datentyp varchar(128) und hat den Standardwert 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.

    Wichtiger HinweisWichtig

    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 Typs 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) und hat den Standardwert 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 Typs 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) und hat den Standardwert NULL. Gültige Eingabewerte sind COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER und NULL.

  • [ @level2name = ]{ 'level2_object_name'}
    Der Name des angegebenen Typs 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. Eine vollständige Liste der Objekte und deren gültige Typen der Ebene 0, 1 und 2 finden Sie unter Verwenden von erweiterten Eigenschaften für Datenbankobjekte.

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. Eine vollständige Liste der erforderlichen Berechtigungen finden Sie unter Verwenden von erweiterten Eigenschaften für Datenbankobjekte.

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 AdventureWorks2008R2;
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 AdventureWorks2008R2-Beispieldatenbank erstellt und dann der Wert dieser Eigenschaft aktualisiert.

USE AdventureWorks2008R2;
GO
EXEC sp_addextendedproperty 
@name = N'NewCaption', @value = 'AdventureWorks2008R2 Sample OLTP Database';
GO
USE AdventureWorks2008R2;
GO
EXEC sp_updateextendedproperty 
@name = N'NewCaption', @value = 'AdventureWorks2008R2 Sample Database';
GO