sp_updateextendedproperty (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz
Aktualisiert den Wert einer vorhandenen erweiterten Eigenschaft.
Transact-SQL-Syntaxkonventionen
Syntax
sp_updateextendedproperty
[ @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 zu aktualisierenden Eigenschaft. @name ist "sysname" ohne Standard.
[ @value = ] value
Der wert, der der Eigenschaft zugeordnet ist. @value ist sql_variant, mit einem Standardwert von NULL
. Die Größe des Werts darf nicht mehr als 7.500 Byte betragen.
[ @level0type = ] 'level0type'
Der benutzer- oder benutzerdefinierte Typ. @level0type ist varchar(128) mit einem Standardwert von NULL
. Gültige Eingaben sind:
ASSEMBLY
CONTRACT
EVENT NOTIFICATION
FILEGROUP
MESSAGE TYPE
PARTITION FUNCTION
PARTITION SCHEME
PLAN GUIDE
REMOTE SERVICE BINDING
ROUTE
SCHEMA
SERVICE
USER
TRIGGER
TYPE
NULL
Wichtig
USER
und TYPE
als Typen der Ebene 0 werden in einer zukünftigen Version von SQL Server entfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktionen zurzeit verwenden. Verwenden Sie SCHEMA
anstelle des Typs "Ebene 0" .USER
Verwenden Sie für TYPE
, als Typ der Ebene 0 und TYPE
als Typ der Ebene 1SCHEMA
.
[ @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:
ASSEMBLY
CONTRACT
EVENT NOTIFICATION
FILEGROUP
MESSAGE TYPE
PARTITION FUNCTION
PARTITION SCHEME
PLAN GUIDE
REMOTE SERVICE BINDING
ROUTE
SCHEMA
SERVICE
USER
TRIGGER
TYPE
NULL
[ @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:
COLUMN
CONSTRAINT
EVENT NOTIFICATION
INDEX
PARAMETER
TRIGGER
NULL
[ @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 (0, 1 und 2) klassifiziert. 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 @name und @value gehört die aktualisierte Eigenschaft zu der aktuellen Datenbank, wenn alle Objekttypen und Namen vorhanden sind NULL
.
Berechtigungen
Elemente der db_owner und db_ddladmin festen Datenbankrollen können die erweiterten Eigenschaften eines objekts mit der folgenden Ausnahme aktualisieren: db_ddladmin können der Datenbank selbst oder Benutzern oder Rollen keine Eigenschaften hinzufügen.
Benutzer können erweiterte Eigenschaften auf Objekte aktualisieren, die sie besitzen, oder für die sie ÜBER ALTER- oder CONTROL-Berechtigungen verfügen.
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 AdventureWorks2022;
GO
CREATE TABLE T1 (id INT, name CHAR(20));
GO
EXEC sp_addextendedproperty @name = N'Caption',
@value = N'Employee ID',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
--Update the extended property.
EXEC sp_updateextendedproperty @name = N'Caption',
@value = 'Employee ID must be unique.',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
B. Aktualisieren einer erweiterten Eigenschaft in einer Datenbank
Im folgenden Beispiel wird zunächst eine erweiterte Eigenschaft für die AdventureWorks2022
-Beispieldatenbank erstellt und dann der Wert dieser Eigenschaft aktualisiert.
USE AdventureWorks2022;
GO
EXEC sp_addextendedproperty @name = N'NewCaption',
@value = 'AdventureWorks Sample OLTP Database';
GO
USE AdventureWorks2022;
GO
EXEC sp_updateextendedproperty @name = N'NewCaption',
@value = 'AdventureWorks Sample Database';
GO