sp_addextendedproperty (Transact-SQL)sp_addextendedproperty (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Fügt eine neue erweiterte Eigenschaft zu einem Datenbankobjekt hinzu.Adds a new extended property to a database object.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


sp_addextendedproperty  
    [ @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' }   
                        ]   
                ]  
        ]   
    ]   
[;]  

ArgumenteArguments

[ @name ] = {'Property_name'}[ @name ] = { 'property_name' }
Ist der Name der Eigenschaft hinzugefügt werden.Is the name of the property to be added. Property_name ist Sysname und darf nicht NULL sein.property_name is sysname and cannot be NULL. Namen können auch leere oder nicht alphanumerische Zeichenfolgen sowie binäre Werte sein.Names can also include blank or non-alphanumeric character strings, and binary values.

[ @value=] {"Wert'}[ @value= ] { 'value'}
Der Wert, der der Eigenschaft zugeordnet werden soll.Is the value to be associated with the property. Wert ist Sql_variant, hat den Standardwert NULL.value is sql_variant, with a default of NULL. value kann nicht größer als 7.500 Bytes sein.The size of value cannot be more than 7,500 bytes.

[ @level0type=] {"level0_object_type'}[ @level0type= ] { 'level0_object_type' }
Der Typ des Objekts der Ebene 0.Is the type of level 0 object. level0_object_type ist varchar(128), hat den Standardwert NULL.level0_object_type is varchar(128), with a default of 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, PLAN GUIDE und NULL.Valid inputs are ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE, PLAN GUIDE, and NULL.

Wichtig

In zukünftigen Versionen von SQL ServerSQL Server wird es nicht mehr möglich sein, USER als Typ der Ebene 0 in einer erweiterten Eigenschaft eines Typobjekts der Ebene 1 anzugeben.The ability to specify USER as a level 0 type in an extended property of a level 1 type object will be removed in a future version of SQL ServerSQL Server. Verwenden Sie stattdessen SCHEMA als Typ der Ebene 0.Use SCHEMA as the level 0 type instead. Beispiel: Wenn Sie eine erweiterte Eigenschaft für eine Tabelle definieren, geben Sie das Schema der Tabelle statt eines Benutzernamens an.For example, when defining an extended property on a table, specify the schema of the table instead of a user name. In zukünftigen Versionen von SQL ServerSQL Server kann TYPE nicht mehr als Typ der Ebene 0 angegeben werden.The ability to specify TYPE as level-0 type will be removed in a future version of SQL ServerSQL Server. Verwenden Sie für TYPE als Typ der Ebene 0 SCHEMA und TYPE als Typ der Ebene 1.For TYPE, use SCHEMA as the level 0 type and TYPE as the level 1 type.

[ @level0name=] {"level0_object_name'}[ @level0name= ] { 'level0_object_name' }
Der Name des angegebenen Objekttyps der Ebene 0.Is the name of the level 0 object type specified. level0_object_name ist Sysname hat den Standardwert NULL.level0_object_name is sysname with a default of NULL.

[ @level1type=] {"level1_object_type'}[ @level1type= ] { 'level1_object_type' }
Der Typ des Objekts der Ebene 1.Is the type of level 1 object. level1_object_type ist varchar(128), hat den Standardwert NULL.level1_object_type is varchar(128), with a default of NULL. Gültige Eingabewerte sind AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TABLE_TYPE, TYPE, VIEW, XML SCHEMA COLLECTION und NULL.Valid inputs are AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TABLE_TYPE, TYPE, VIEW, XML SCHEMA COLLECTION, and NULL.

[ @level1name=] {"level1_object_name'}[ @level1name= ] { 'level1_object_name' }
Der Name des angegebenen Objekttyps der Ebene 1.Is the name of the level 1 object type specified. level1_object_name ist Sysname, hat den Standardwert NULL.level1_object_name is sysname, with a default of NULL.

[ @level2type=] {"level2_object_type'}[ @level2type= ] { 'level2_object_type' }
Der Typ des Objekts der Ebene 2.Is the type of level 2 object. level2_object_type ist varchar(128), hat den Standardwert NULL.level2_object_type is varchar(128), with a default of NULL. Gültige Eingabewerte sind COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER und NULL.Valid inputs are COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER, and NULL.

[ @level2name=] {"level2_object_name'}[ @level2name= ] { 'level2_object_name' }
Der Name des angegebenen Objekttyps der Ebene 2.Is the name of the level 2 object type specified. level2_object_name ist Sysname, hat den Standardwert NULL.level2_object_name is sysname, with a default of NULL.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

HinweiseRemarks

Beim Festlegen erweiterter Eigenschaften werden die Objekte in einer SQL ServerSQL Server-Datenbank in drei Ebenen unterteilt: 0, 1 und 2.For specifying extended properties, the objects in a SQL ServerSQL Server database are classified into three levels: 0, 1, and 2. Ebene 0 ist die höchste Ebene und als im Datenbankbereich enthaltene Objekte definiert.Level 0 is the highest level and is defined as objects that are contained at the database scope. Objekte der Ebene 1 sind in einem Schema- oder Benutzerbereich enthalten, und Objekte der Ebene 2 sind in Objekten der Ebene 1 enthalten.Level 1 objects are contained in a schema or user scope, and level 2 objects are contained by level 1 objects. Erweiterte Eigenschaften können für Objekte auf einer dieser Ebenen definiert werden.Extended properties can be defined for objects at any of these levels.

Verweise auf ein Objekt einer Ebene müssen mit den Namen der Objekte der höheren Ebene gekennzeichnet werden, die diese besitzen oder enthalten.References to an object in one level must be qualified with the names of the higher level objects that own or contain them. Wenn Sie beispielsweise einer Tabellenspalte (Ebene 2) eine erweiterte Eigenschaft hinzufügen, müssen Sie auch den Tabellennamen (Ebene 1) angeben, der die Spalte und das Schema (Ebene 0) enthält, das die Tabelle enthält.For example, when you add an extended property to a table column (level 2), you must also specify the table name (level 1) that contains the column and the schema (level 0) that contains the table.

Wenn alle Objekttypen und -namen NULL sind, gehört die Eigenschaft zur aktuellen Datenbank.If all object types and names are null, the property belongs to the current database itself.

Erweiterte Eigenschaften sind für Systemobjekte, Objekte außerhalb des Bereichs einer benutzerdefinierten Datenbank oder Objekte, die nicht als gültige Eingaben unter den Argumenten aufgelistet sind, nicht zulässig.Extended properties are not allowed on system objects, objects outside the scope of a user-defined database, or objects not listed in Arguments as valid inputs.

Erweiterte Eigenschaften werden für Speicheroptimierte Tabellen nicht zulässig.Extended properties are not allowed on memory-optimized tables.

Replizieren erweiterter EigenschaftenReplicating Extended Properties

Erweiterte Eigenschaften werden nur in der ersten Synchronisierung zwischen dem Verleger und dem Abonnenten repliziert.Extended properties are replicated only in the initial synchronization between the Publisher and the Subscriber. Wenn Sie eine erweiterte Eigenschaft nach der ersten Synchronisierung hinzufügen oder ändern, wird die Änderung nicht repliziert.If you add or modify an extended property after the initial synchronization, the change is not replicated. Weitere Informationen über das Replizieren von Datenbanken finden Sie unter Veröffentlichen von Daten und Datenbankobjekte.For more information about how to replicate database objects, see Publish Data and Database Objects.

Schema oder BenutzerSchema vs. User

Es wird nicht empfohlen, USER als einen Typ der Ebene 0 anzugeben, wenn eine erweiterte Eigenschaft auf ein Datenbankobjekt angewendet wird, da dies zu Mehrdeutigkeiten bei der Namensauflösung führen kann.We do not recommend specifying USER as a level 0 type when you apply an extended property to a database object, because this can cause name resolution ambiguity. Angenommen, Benutzer Mary besitzt beispielsweise zwei Schemas (Mary und MySchema), und diese Schemas enthalten beide eine Tabelle namens MyTable.For example, assume user Mary owns two schemas (Mary and MySchema) and these schemas both contain a table named MyTable. Wenn Mary MyTable-Tabelle eine erweiterte Eigenschaft hinzufügt und gibt @level0type @level0type = ", @level0name = Mary, es ist nicht klar, auf welche Tabelle die erweiterte Eigenschaft angewendet wird.If Mary adds an extended property to table MyTable and specifies @level0type = N'USER', @level0name = Mary, it is not clear to which table the extended property is applied. Aus Gründen der Abwärtskompatibilität wendet SQL ServerSQL Server die Eigenschaft auf die Tabelle im Schema namens Mary an.To maintain backward compatibility, SQL ServerSQL Server will apply the property to the table that is contained in the schema named Mary.

BerechtigungenPermissions

Mitglieder der festen Datenbankrollen db_owner und db_ddladmin können beliebigen Objekten erweiterte Eigenschaften hinzufügen, wobei die folgende Ausnahme gilt: db_ddladmin kann weder der Datenbank noch Benutzern oder Rollen Eigenschaften hinzufügen.Members of the db_owner and db_ddladmin fixed database roles can add extended properties to any object with the following exception: db_ddladmin cannot add properties to the database itself, or to users or roles.

Benutzer können erweiterte Eigenschaften zu Objekten hinzufügen, die sie besitzen, oder für die sie die ALTER- oder CONTROL-Berechtigung haben.Users can add extended properties to objects they own or have ALTER or CONTROL permissions on.

BeispieleExamples

A.A. Hinzufügen einer erweiterten Eigenschaft zu einer DatenbankAdding an extended property to a database

Im folgenden Beispiel wird der 'Caption' -Beispieldatenbank der Eigenschaftsname 'AdventureWorks2012 Sample OLTP Database' mit dem Wert AdventureWorks2012 hinzugefügt.The following example adds the property name 'Caption' with a value of 'AdventureWorks2012 Sample OLTP Database' to the AdventureWorks2012 sample database.

USE AdventureWorks2012;  
GO  
--Add a caption to the AdventureWorks2012 Database object itself.  
EXEC sp_addextendedproperty   
@name = N'Caption',   
@value = 'AdventureWorks2012 Sample OLTP Database';  

B.B. Hinzufügen einer erweiterten Eigenschaft zu einer Spalte in einer TabelleAdding an extended property to a column in a table

Im folgenden Beispiel wird der PostalCode -Spalte in der Address-Tabelle eine Caption-Eigenschaft hinzugefügt.The following example adds a caption property to column PostalCode in table Address.

USE AdventureWorks2012;  
GO  
EXEC sp_addextendedproperty   
@name = N'Caption',   
@value = 'Postal code is a required column.',  
@level0type = N'Schema', @level0name = 'Person',  
@level1type = N'Table',  @level1name = 'Address',  
@level2type = N'Column', @level2name = 'PostalCode';  
GO  

C.C. Hinzufügen einer InputMask-Eigenschaft zu einer SpalteAdding an input mask property to a column

Im folgenden Beispiel wird der99999 or 99999-9999 or #### ###-Spalte in der PostalCode -Tabelle eine InputMask-Eigenschaft mit dem Wert ' Addresshinzugefügt.The following example adds an input mask property '99999 or 99999-9999 or #### ###' to the column PostalCode in the table Address.

USE AdventureWorks2012;  
GO  
EXEC sp_addextendedproperty   
@name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',  
@level0type = N'Schema', @level0name = 'Person',  
@level1type = N'Table', @level1name = 'Address',   
@level2type = N'Column',@level2name = 'PostalCode';  
GO  

D.D. Hinzufügen einer erweiterten Eigenschaft zu einer DateigruppeAdding an extended property to a filegroup

Im folgenden Beispiel wird der PRIMARY -Dateigruppe eine erweiterte Eigenschaft hinzugefügt.The following example adds an extended property to the PRIMARY filegroup.

USE AdventureWorks2012;  
GO  
EXEC sys.sp_addextendedproperty   
@name = N'MS_DescriptionExample',   
@value = N'Primary filegroup for the AdventureWorks2012 sample database.',   
@level0type = N'FILEGROUP', @level0name = 'PRIMARY';  
GO  

E.E. Hinzufügen einer erweiterten Eigenschaft zu einem SchemaAdding an extended property to a schema

Im folgenden Beispiel wird dem HumanResources -Schema eine erweiterte Eigenschaft hinzugefügt.The following example adds an extended property to the HumanResources schema.

USE AdventureWorks2012;  
GO  
EXECUTE sys.sp_addextendedproperty   
@name = N'MS_DescriptionExample',  
@value = N'Contains objects related to employees and departments.',  
@level0type = N'SCHEMA',   
@level0name = 'HumanResources';  

F.F. Hinzufügen einer erweiterten Eigenschaft zu einer TabelleAdding an extended property to a table

Im folgenden Beispiel wird der Address -Tabelle im Person -Schema eine erweiterte Eigenschaft hinzugefügt.The following example adds an extended property to the Address table in the Person schema.

USE AdventureWorks2012;  
GO  
EXEC sys.sp_addextendedproperty   
@name = N'MS_DescriptionExample',   
@value = N'Street address information for customers, employees, and vendors.',   
@level0type = N'SCHEMA', @level0name = 'Person',  
@level1type = N'TABLE',  @level1name = 'Address';  
GO  

G.G. Hinzufügen einer erweiterten Eigenschaft zu einer RolleAdding an extended property to a role

Im folgenden Beispiel wird eine Anwendungsrolle erstellt, und der Rolle wird eine erweiterte Eigenschaft hinzugefügt.The following example creates an application role and adds an extended property to the role.

USE AdventureWorks2012;   
GO  
CREATE APPLICATION ROLE Buyers  
WITH Password = '987G^bv876sPY)Y5m23';   
GO  
EXEC sys.sp_addextendedproperty   
@name = N'MS_Description',   
@value = N'Application Role for the Purchasing Department.',  
@level0type = N'USER',  
@level0name = 'Buyers';  

H.H. Hinzufügen einer erweiterten Eigenschaft zu einem TypAdding an extended property to a type

Im folgenden Beispiel wird einem Typ eine erweiterte Eigenschaft hinzugefügt.The following example adds an extended property to a type.

USE AdventureWorks2012;   
GO  
EXEC sys.sp_addextendedproperty   
@name = N'MS_Description',   
@value = N'Data type (alias) to use for any column that represents an order number. For example a sales order number or purchase order number.',   
@level0type = N'SCHEMA',   
@level0name = N'dbo',   
@level1type = N'TYPE',   
@level1name = N'OrderNumber';  

I.I. Hinzufügen einer erweiterten Eigenschaft zu einem BenutzerAdding an extended property to a user

Im folgenden Beispiel wird ein Benutzer erstellt und diesem eine erweiterte Eigenschaft hinzugefügt.The following example creates a user and adds an extended property to the user.

USE AdventureWorks2012;   
GO  
CREATE USER CustomApp WITHOUT LOGIN ;   
GO  
EXEC sys.sp_addextendedproperty   
@name = N'MS_Description',   
@value = N'User for an application.',   
@level0type = N'USER',   
@level0name = N'CustomApp';  

Siehe auchSee Also

Gespeicherte Datenbankmodulprozeduren (Transact-SQL) Database Engine Stored Procedures (Transact-SQL)
Sys.fn_listextendedproperty (Transact-SQL) sys.fn_listextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL) sp_dropextendedproperty (Transact-SQL)
Sp_updateextendedproperty (Transact-SQL)sp_updateextendedproperty (Transact-SQL)