sp_dropextendedproperty (Transact-SQL)
Gilt für:SQL Server
Löscht eine vorhandene erweiterte Eigenschaft.
Transact-SQL-Syntaxkonventionen
Syntax
sp_dropextendedproperty
[ @name = ] { 'property_name' }
[ , [ @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 löschenden Eigenschaft. property_name ist sysname und darf nicht NULL sein.
[ @level0type= ]{ 'level0_object_type'}
Der Name des angegebenen Objekttyps der Ebene 0. level0_object_type ist varchar(128) mit dem 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.
Wichtig
Die Typen USER und TYPE as level-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 von USER als Typ der Ebene 0. Verwenden Sie für TYPE als Typ der Ebene 0 SCHEMA und TYPE als Typ der Ebene 1.
[ @level0name= ]{ 'level0_object_name'}
Der Name des angegebenen Objekttyps der Ebene 0. level0_object_name ist sysname mit dem Standardwert NULL.
[ @level1type= ]{ 'level1_object_type'}
Der Typ des Objekts der Ebene 1. level1_object_type ist varchar(128) mit dem Standardwert 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.
[ @level1name= ]{ 'level1_object_name'}
Der Name des angegebenen Objekttyps der Ebene 1. level1_object_name ist sysname mit dem Standardwert NULL.
[ @level2type= ]{ 'level2_object_type'}
Der Typ des Objekts der Ebene 2. level2_object_type ist varchar(128) mit dem Standardwert 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 sysname mit dem Standardwert NULL.
Rückgabecodewerte
„0“ (erfolgreich) oder „1“ (fehlerhaft)
Bemerkungen
Zum Angeben erweiterter Eigenschaften werden die Objekte in einer SQL Server-Datenbank in drei Ebenen klassifiziert: 0, 1 und 2. 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 Typen und Namen aller Objekte der höheren Ebenen gekennzeichnet werden.
Wenn bei einem gültigen property_name alle Objekttypen und Namen NULL sind und eine Eigenschaft in der aktuellen Datenbank vorhanden ist, wird diese Eigenschaft gelöscht. Weitere Informationen finden Sie im Beispiel B, weiter unten in diesem Thema.
Berechtigungen
Mitglieder der festen Datenbankrollen db_owner und db_ddladmin können erweiterte Eigenschaften beliebiger Objekte mit folgender Ausnahme löschen: db_ddladmin kann weder der Datenbank noch Benutzern oder Rollen Eigenschaften hinzufügen.
Benutzer können erweiterte Eigenschaften von Objekten löschen, die sie besitzen, oder für die sie über die ALTER- oder CONTROL-Berechtigung verfügen.
Beispiele
A. Löschen der erweiterten Eigenschaft einer Spalte
Im folgenden Beispiel wird die caption
-Eigenschaft aus der id
-Spalte in der T1
-Tabelle entfernt, die im dbo
-Schema enthalten ist.
CREATE TABLE T1 (id int , name char (20));
GO
EXEC sp_addextendedproperty
@name = 'caption'
,@value = 'Employee ID'
,@level0type = 'schema'
,@level0name = dbo
,@level1type = 'table'
,@level1name = 'T1'
,@level2type = 'column'
,@level2name = id;
GO
EXEC sp_dropextendedproperty
@name = 'caption'
,@level0type = 'schema'
,@level0name = dbo
,@level1type = 'table'
,@level1name = 'T1'
,@level2type = 'column'
,@level2name = id;
GO
DROP TABLE T1;
GO
B. Löschen der erweiterten Eigenschaft einer Datenbank
Im folgenden Beispiel wird die Eigenschaft namens MS_Description
aus der AdventureWorks2022
Beispieldatenbank entfernt. Da die Eigenschaft zur Datenbank selbst gehört, werden keine Objekttypen und -namen angegeben.
USE AdventureWorks2012;
GO
EXEC sp_dropextendedproperty
@name = N'MS_Description';
GO
Weitere Informationen
Gespeicherte Prozeduren für die Datenbank-Engine (Transact-SQL)
sys.fn_listextendedproperty (Transact-SQL)
sp_addextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)