Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Fügt eine neue erweiterte Eigenschaft zu einem Datenbankobjekt hinzu.
Transact-SQL-Syntaxkonventionen
Syntax
sp_addextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Argumente
[ @name = ] N'name'
Der Name der hinzuzufügenden Eigenschaft.
@name ist "sysname" ohne Standard und kann nicht seinNULL. Namen können leere oder nicht alphanumerische Zeichenfolgen und Binäre Werte enthalten.
[ @value = ] Wert
Der Wert, der der Eigenschaft zugeordnet werden soll.
@value ist sql_variant, mit einem Standardwert von NULL. Die Größe von @value darf nicht mehr als 7.500 Byte betragen.
[ @level0type = ] 'level0type'
Der Typ des Objekts der Ebene 0.
@level0type ist varchar(128) mit einem Standardwert von NULL.
Gültige Eingaben sind:
ASSEMBLYCONTRACTEVENT NOTIFICATIONFILEGROUPMESSAGE TYPEPARTITION FUNCTIONPARTITION SCHEMEREMOTE SERVICE BINDINGROUTESCHEMASERVICEUSERTRIGGERTYPEPLAN GUIDENULL
Wichtig
Die Möglichkeit zum Angeben USER als Typ der Ebene 0 in einer erweiterten Eigenschaft eines Typobjekts vom Typ Level 1 wird in einer zukünftigen Version von SQL Server entfernt. Verwenden Sie SCHEMA stattdessen als Ebene-0-Typ. Beispiel: Wenn Sie eine erweiterte Eigenschaft für eine Tabelle definieren, geben Sie das Schema der Tabelle statt eines Benutzernamens an. Die Möglichkeit, als Typ der Ebene 0 anzugeben TYPE , wird in einer zukünftigen Version von SQL Server entfernt. Verwenden Sie SCHEMA für TYPE als Typ der Ebene 0 und TYPE als Typ der Ebene 1.
[ @level0name = ] N'level0name'
Der Name des angegebenen Objekttyps der Ebene 0.
@level0name ist "sysname" mit der Standardeinstellung "NULL.
[ @level1type = ] 'level1type'
Der Typ des Objekts der Ebene 1.
@level1type ist varchar(128) mit einem Standardwert von NULL.
Gültige Eingaben sind:
AGGREGATEDEFAULTFUNCTIONLOGICAL FILE NAMEPROCEDUREQUEUERULESEQUENCESYNONYMTABLETABLE_TYPETYPEVIEWXML SCHEMA COLLECTIONNULL
[ @level1name = ] N'level1name'
Der Name des angegebenen Objekttyps der Ebene 1.
@level1name ist "sysname" mit einem Standardwert von NULL.
[ @level2type = ] 'level2type'
Der Typ des Objekts der Ebene 2.
@level2type ist varchar(128), mit einem Standardwert von NULL.
Gültige Eingaben sind:
COLUMNCONSTRAINTEVENT NOTIFICATIONINDEXPARAMETERTRIGGERNULL
[ @level2name = ] N'level2name'
Der Name des angegebenen Objekttyps der Ebene 2.
@level2name ist "sysname" mit dem Standardwert "NULL.
Rückgabecodewerte
0 (erfolgreich) oder 1 Fehler.
Hinweise
Wenn Sie erweiterte Eigenschaften angeben, werden die Objekte in einer SQL Server-Datenbank in drei Ebenen klassifiziert: 0, 1 und 2. Ebene 0 ist die höchste Ebene und als im Datenbankbereich enthaltene Objekte definiert. 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. Wenn Sie beispielsweise einer Tabellenspalte (Ebene 2) eine erweiterte Eigenschaft hinzufügen, müssen Sie auch den Tabellenamen (Ebene 1) angeben, der die Spalte und das Schema (Ebene 0) enthält, in dem die Tabelle enthalten ist.
Wenn alle Objekttypen und -namen NULL sind, gehört die Eigenschaft zur aktuellen Datenbank.
Erweiterte Eigenschaften sind für Systemobjekte, Objekte außerhalb des Bereichs einer benutzerdefinierten Datenbank oder Objekte, die in Argumenten nicht als gültige Eingaben aufgeführt sind, nicht zulässig.
Erweiterte Eigenschaften sind für speicheroptimierte Tabellen nicht zulässig.
Replizieren erweiterter Eigenschaften
Erweiterte Eigenschaften werden nur in der ersten Synchronisierung zwischen dem Verleger und dem Abonnenten repliziert. Wenn Sie nach der ersten Synchronisierung eine erweiterte Eigenschaft hinzufügen oder ändern, wird die Änderung nicht repliziert. Weitere Informationen zum Replizieren von Datenbankobjekten finden Sie unter Veröffentlichen von Daten- und Datenbankobjekten.
Schema im Vergleich zum Benutzer
Es wird nicht empfohlen USER , einen Typ der Ebene 0 anzugeben, wenn Sie eine erweiterte Eigenschaft auf ein Datenbankobjekt anwenden, da dies zu Mehrdeutigkeit der Namensauflösung führen kann. Angenommen, Der Benutzer Mary besitzt zwei Schemas (Mary und MySchema), und diese Schemas enthalten beide eine Tabelle mit dem Namen MyTable. Wenn Mary eine erweiterte Eigenschaft zu Tabelle MyTable hinzufügt und angibt @level0type = 'USER', @level0name = N'Mary', ist es nicht klar, auf welche Tabelle die erweiterte Eigenschaft angewendet wird. Um die Abwärtskompatibilität aufrechtzuerhalten, wendet SQL Server die Eigenschaft auf die Tabelle an, die im Schema mit dem Namen Maryenthalten ist.
Berechtigungen
Elemente der db_owner und db_ddladmin festen Datenbankrollen können jedem Objekt mit der folgenden Ausnahme erweiterte Eigenschaften hinzufügen: db_ddladmin können der Datenbank selbst oder Benutzern oder Rollen keine Eigenschaften hinzufügen.
Benutzer können erweiterte Eigenschaften zu Objekten hinzufügen, die sie besitzen, oder für die sie die ALTER- oder CONTROL-Berechtigung haben.
Beispiele
Ein. Hinzufügen einer erweiterten Eigenschaft zu einer Datenbank
Im folgenden Beispiel wird der Caption -Beispieldatenbank der Eigenschaftsname AdventureWorks2022 Sample OLTP Database mit dem Wert AdventureWorks2025 hinzugefügt.
USE AdventureWorks2022;
GO
--Add a caption to the AdventureWorks2022 Database object itself.
EXECUTE sp_addextendedproperty
@name = N'Caption',
@value = 'AdventureWorks2022 Sample OLTP Database';
B. Hinzufügen einer erweiterten Eigenschaft zu einer Spalte in einer Tabelle
Im folgenden Beispiel wird der PostalCode -Spalte in der Address-Tabelle eine Caption-Eigenschaft hinzugefügt.
USE AdventureWorks2022;
GO
EXECUTE sp_addextendedproperty
@name = N'Caption', @value = 'Postal code is a required column.',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address',
@level2type = 'COLUMN', @level2name = N'PostalCode';
GO
C. Hinzufügen einer Eingabeformateigenschaft zu einer Spalte
Im folgenden Beispiel wird der Spalte 99999 or 99999-9999 or #### ### in der Tabelle PostalCodeeine Eingabeformateigenschaft Address hinzugefügt.
USE AdventureWorks2022;
GO
EXECUTE sp_addextendedproperty
@name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address',
@level2type = 'COLUMN', @level2name = N'PostalCode';
GO
D: Hinzufügen einer erweiterten Eigenschaft zu einer Dateigruppe
Im folgenden Beispiel wird der PRIMARY -Dateigruppe eine erweiterte Eigenschaft hinzugefügt.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Primary filegroup for the AdventureWorks2022 sample database.',
@level0type = 'FILEGROUP', @level0name = N'PRIMARY';
GO
E. Hinzufügen einer erweiterten Eigenschaft zu einem Schema
Im folgenden Beispiel wird dem HumanResources -Schema eine erweiterte Eigenschaft hinzugefügt.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Contains objects related to employees and departments.',
@level0type = 'SCHEMA', @level0name = N'HumanResources';
F. Hinzufügen einer erweiterten Eigenschaft zu einer Tabelle
Im folgenden Beispiel wird der Address -Tabelle im Person -Schema eine erweiterte Eigenschaft hinzugefügt.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_DescriptionExample', @value = N'Street address information for customers, employees, and vendors.',
@level0type = 'SCHEMA', @level0name = N'Person',
@level1type = 'TABLE', @level1name = N'Address';
GO
G. Hinzufügen einer erweiterten Eigenschaft zu einer Rolle
Im folgenden Beispiel wird eine Anwendungsrolle erstellt, und der Rolle wird eine erweiterte Eigenschaft hinzugefügt. Ersetzen Sie <password> es durch ein sicheres Kennwort.
USE AdventureWorks2022;
GO
CREATE APPLICATION ROLE Buyers
WITH PASSWORD = '<password>';
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'Application Role for the Purchasing Department.',
@level0type = 'USER', @level0name = N'Buyers';
H. Hinzufügen einer erweiterten Eigenschaft zu einem Typ
Im folgenden Beispiel wird einem Typ eine erweiterte Eigenschaft hinzugefügt.
USE AdventureWorks2022;
GO
EXECUTE 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 = 'SCHEMA', @level0name = N'dbo',
@level1type = 'TYPE', @level1name = N'OrderNumber';
Ich. Hinzufügen einer erweiterten Eigenschaft zu einem Benutzer
Im folgenden Beispiel wird ein Benutzer erstellt und diesem eine erweiterte Eigenschaft hinzugefügt.
USE AdventureWorks2022;
GO
CREATE USER CustomApp WITHOUT LOGIN;
GO
EXECUTE sys.sp_addextendedproperty
@name = N'MS_Description', @value = N'User for an application.',
@level0type = 'USER', @level0name = N'CustomApp';