Freigeben über


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