Verwenden von erweiterten Eigenschaften für Datenbankobjekte

Mithilfe erweiterter Eigenschaften können Sie Text (z. B. Beschreibungs- oder Anweisungsinhalte), Eingabeformate und Formatierungsregeln als Eigenschaften von Objekten in einer Datenbank oder der Datenbank selbst hinzufügen. Sie können z. B. einem Schema, der Sicht eines Schemas oder einer Spalte in der Sicht eine erweiterte Eigenschaft hinzufügen. Da erweiterte Eigenschaften in der Datenbank gespeichert werden, können alle Anwendungen, die die Eigenschaften lesen, das Objekt auf die gleiche Weise auswerten. Hierdurch wird das Erzwingen der konsistenten Behandlung der Daten durch sämtliche Programme im System unterstützt.

Erweiterte Eigenschaften können für folgende Zwecke verwendet werden:

  • Angeben einer Beschriftung für eine Tabelle, Sicht oder Spalte. Anwendungen können dann die gleiche Beschriftung in einer Benutzeroberfläche verwenden, die Informationen aus dieser Tabelle, Sicht oder Spalte anzeigt.

  • Angeben einer Eingabemaske für eine Spalte, damit Anwendungen Daten überprüfen können, bevor eine Transact-SQL-Anweisung ausgeführt wird. Das erforderliche Format für eine Postleitzahl- oder Rufnummerspalte kann z. B. in der erweiterten Eigenschaft angegeben werden.

  • Angeben von Formatierungsregeln zum Anzeigen der Daten in einer Spalte.

  • Aufzeichnen einer Beschreibung bestimmter Datenbankobjekte, die Anwendungen für die Benutzer anzeigen können. Die Beschreibungen können z. B. in einer Anwendung oder einem Bericht für Datenwörterbücher verwendet werden.

  • Angeben der Größe und der Fensterposition zum Anzeigen einer Spalte.

HinweisHinweis

Erweiterte Eigenschaften sollten nicht verwendet werden, um sicherheitsrelevante Informationen zu einem Objekt auszublenden. Jeder Benutzer, dem Berechtigungen für das Objekt erteilt wurden, kann die erweiterten Eigenschaften für das Objekt anzeigen. Wenn Sie einem Benutzer z. B. die SELECT-Berechtigungen für eine Tabelle erteilen, kann er die erweiterten Eigenschaften für die Tabelle anzeigen.

Definieren erweiterter Eigenschaften

Jede erweiterte Eigenschaft verfügt über einen benutzerdefinierten Namen und einen benutzerdefinierten Wert. Der Wert einer erweiterten Eigenschaft ist vom Typ sql_variant und kann Daten im Umfang von bis zu 7.500 Byte enthalten. Einem einzelnen Objekt können mehrere erweiterte Eigenschaften hinzugefügt werden.

Für das Angeben erweiterter Eigenschaften werden die Objekte in einer SQL Server-Datenbank in drei Ebenen, 0, 1 und 2, unterteilt. 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, Objekte der Ebene 2 sind in Objekten der Ebene 1 enthalten. Erweiterte Eigenschaften können für Objekte auf jeder 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 z. B. einer Tabellenspalte der Ebene 2 eine erweiterte Eigenschaft hinzufügen, müssen Sie auch den Tabellennamen der Ebene 1 angeben, in der die Spalte enthalten ist, sowie das Schema der Ebene 0, das die Tabelle enthält.

Im folgenden Beispiel wird der erweiterte Eigenschaftenwert 'Minimum inventory quantity.' der SafetyStockLevel-Spalte in der Product-Tabelle hinzugefügt, die im Production -Schema enthalten ist.

USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Minimum inventory quantity.', 
@level0type = N'SCHEMA', @level0name = Production, 
@level1type = N'TABLE',  @level1name = Product,
@level2type = N'COLUMN', @level2name = SafetyStockLevel;
GO

Hinzufügen erweiterter Eigenschaften zu Objekten

Die folgende Tabelle führt die Objekte auf, denen erweiterte Eigenschaften hinzugefügt werden können. Die gültigen Objekttypen der Ebene 0, Ebene 1 und Ebene 2 werden genannt, ebenso wie die Berechtigungen, die zum Hinzufügen, Löschen oder Anzeigen der erweiterten Eigenschaften erforderlich sind.

Aggregat

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

AGGREGAT

ALTER für OBJECT des Aggregats

Beliebige für OBJECT

Gilt für benutzerdefinierte CLR-Aggregatfunktionen.

Asymmetrischer Schlüssel

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

ASYMMETRIC KEY

ALTER für CERTIFICATE

Beliebig für KEY

1

Keine

 

 

2

Keine

 

 

Assembly

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

ASSEMBLY

ALTER für ASSEMBLY

Beliebige für ASSEMBLY

1

Keine

 

 

2

Keine

 

 

Zertifikat

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

CERTIFICATE

ALTER für CERTIFICATE

Beliebig für CERTIFICATE

1

Keine

 

 

2

Keine

 

 

Vertrag (Service Broker)

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

CONTRACT

ALTER für CONTRACT

Beliebige für CONTRACT

1

Keine

 

 

2

Keine

 

 

Datenbank

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

Keine

ALTER für DATABASE

CONTROL für DATABASE

Oder

TAKE OWNERSHIP für DATABASE

Oder

VIEW DEFINITION für DATABASE

Oder

ALTER ANY DATABASE für SERVER

Oder

CREATE DATABASE für SERVER

Eigenschaft gilt für die Datenbank selbst.

1

Keine

 

 

 

2

Keine

 

 

 

Beispiel:

Im folgenden Beispiel wird der AdventureWorks -Beispieldatenbank selbst eine erweiterte Eigenschaft hinzugefügt.

USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'AdventureWorks Sample OLTP Database';
GO

Standard

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

 

1

DEFAULT

ALTER für SCHEMA

HAS_DBACCESS = 1

Wird nur aus Gründen der Abwärtskompatibilität bereitgestellt. Weitere Informationen finden Sie unter Als veraltet markierte Features des Datenbankmoduls in SQL Server 2008.

2

Keine

 

 

 

Ereignisbenachrichtigung

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

EVENT NOTIFICATION

ALTER ANY DATABASE EVENT NOTIFICATION ON DATABASE

Besitzer der Ereignisbenachrichtigung.

Oder

CONTROL, ALTER, TAKE OWNERSHIP oder VIEW DEFINITION für die Datenbank

Oder

ALTER ANY DATABASE EVENT NOTIFICATION

Gilt für Ereignisbenachrichtigungen auf Datenbankebene, deren übergeordnetes Objekt die Datenbank ist.

Erweiterte Eigenschaften können nicht Ereignisbenachrichtigungen auf Serverebene hinzugefügt werden.

1

Keine

 

 

 

2

Keine

 

 

 

Dateigruppen- oder Dateiname

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

FILEGROUP

ALTER für DATABASE

HAS_DBACCESS = 1

1

LOGICAL FILE NAME

ALTER für DATABASE

HAS_DBACCESS = 1

2

Keine

 

 

Beispiel:

Im folgenden Beispiel wird der PRIMARY-Dateigruppe eine erweiterte Eigenschaft hinzugefügt.

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

Im folgenden Beispiel wird dem logischen Dateinamen AdventureWorks_Data in der PRIMARY-Dateigruppe eine erweiterte Eigenschaft hinzugefügt.

USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Primary data file for the AdventureWorks sample database.', 
@level0type = N'FILEGROUP', @level0name = [PRIMARY],
@level1type = N'Logical File Name', @level1name = AdventureWorks_Data;
GO

Funktion

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

FUNCTION

ALTER für OBJECT der Funktion

Beliebige für COLUMN

Oder

Beliebige für OBJECT

Gilt für die folgenden benutzerdefinierten Funktionen:

  • CLR skalar

  • CLR-Tabellenwertfunktion

  • Transact-SQL-Skalarfunktion

  • Transact-SQL-Inline-Tabellenwertfunktion

  • Transact-SQL-Tabellenwertfunktion

Wenn kein Typ der Ebene 2 angegeben wird, gilt die Eigenschaft für die Funktion selbst.

2

COLUMN

ALTER für OBJECT der Funktion

Beliebige für COLUMN

Oder

Beliebige für OBJECT

 

2

CONSTRAINT

ALTER für OBJECT der Funktion

Beliebige für COLUMN

Oder

Beliebige für OBJECT

 

2

PARAMETER

ALTER für OBJECT der Funktion

Beliebige für COLUMN

Oder

Beliebige für OBJECT

 

Beispiel:

Im folgenden Beispiel wird der benutzerdefinierten Funktion ufnGetStock eine erweiterte Eigenschaft hinzugefügt.

USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Scalar function returning the quantity of inventory for a specified ProductID.', 
@level0type = N'SCHEMA', @level0name = [dbo],
@level1type = N'FUNCTION', @level1name = ufnGetStock;
GO

Im folgenden Beispiel wird dem Parameter @ProductID, der in der benutzerdefinierten Funktion ufnGetStock definiert wurde, eine erweiterte Eigenschaft hinzugefügt.

USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Input parameter. Enter a valid ProductID.', 
@level0type = N'SCHEMA', @level0name = [dbo],
@level1type = N'FUNCTION', @level1name = ufnGetStock,
@level2type = N'PARAMETER', @level2name ='@ProductID';
GO

Nachrichtentyp

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

MESSAGE TYPE

ALTER für MESSAGE TYPE

HAS_DBACCESS = 1

1

Keine

 

 

2

Keine

 

 

Partitionsfunktion

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

PARTITION FUNCTION

ALTER ANY DATASPACE für DATABASE

HAS_DBACCESS = 1

1

Keine

 

 

2

Keine

 

 

Partitionsschema

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

PARTITION SCHEME

ALTER ANY DATASPACE für DATABASE

HAS_DBACCESS = 1

1

Keine

 

 

2

Keine

 

 

Planhinweisliste (plan guide)

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

PLAN GUIDE

ALTER ANY DATASPACE für DATABASE

VIEW DEFINITION, ALTER, TAKE OWNERSHIP oder CONTROL für Datenbank mit SQL oder TEMPLATE-Hinweislisten und VIEW DEFINITION, ALTER, TAKE OWNERSHIP oder CONTROL für Objekte der OBJECT-Hinweislisten

1

Keine

 

 

2

Keine

 

 

Im folgenden Beispiel wurde der Planhinweisliste TemplateGuide1 eine erweiterte Eigenschaft hinzugefügt.

USE AdventureWorks;
GO
EXECUTE sp_addextendedproperty @name=N'PlanGuideGroup', @value = N'MyTest', 
@level0type = N'Plan Guide', @level0name = 'TemplateGuide1';

Prozedur

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

PROCEDURE

ALTER für OBJECT der Prozedur

HinweisHinweis
Nur Mitglieder der festen Serverrolle sysadmin können erweiterte Eigenschaften erweiterten gespeicherten Prozeduren hinzufügen.

Beliebige für OBJECT

Gilt für die folgenden benutzerdefinierten gespeicherten Funktionen:

  • CLR

  • Transact-SQL

  • Replikationsfilter

Wenn kein Typ der Ebene 2 angegeben wird, gilt die Eigenschaft für die Prozedur selbst.

2

PARAMETER

ALTER für OBJECT der Prozedur

Beliebige für OBJECT

 

Warteschlange (Service Broker)

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

QUEUE

ALTER für OBJECT der Warteschlange

Beliebige für OBJECT

 

2

EVENT NOTIFICATION

ALTER für OBJECT der Warteschlange

Besitzer der Ereignisbenachrichtigung.

Oder

CONTROL, ALTER, TAKE OWNERSHIP oder VIEW DEFINITION für die Warteschlange

Oder

ALTER ANY DATABASE EVENT NOTIFICATION

Die Ereignisbenachrichtigung kann einen anderen Besitzer als die Warteschlange aufweisen.

Remotedienstbindung (Service Broker)

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

REMOTE SERVICE BINDING

ALTER für REMOTE SERVICE BINDING

Any für REMOTE SERVICE BINDING

1

Keine

 

 

2

Keine

 

 

Route (Service Broker)

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

ROUTE

ALTER für REMOTE SERVICE BINDING

Beliebige für ROUTE

1

Keine

 

 

2

Keine

 

 

Regel

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

 

1

RULE

ALTER für SCHEMA

HAS_DBACCESS = 1

Dieser Parameter wird aus Gründen der Abwärtskompatibilität bereitgestellt. Weitere Informationen finden Sie unter Als veraltet markierte Features des Datenbankmoduls in SQL Server 2008.

2

Keine

 

 

 

Schema oder User

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

ALTER für SCHEMA oder ALTER für USER

Beliebige für APPLICATION ROLE

Oder

Beliebige für ROLE

Oder

Beliebige ON USER

Wenn kein Typ der Ebene 1 angegeben wird, gilt die Eigenschaft für das Schema oder den Benutzer selbst.

USER kann eine der folgenden Rollen sein:

  • Anwendungsrolle

  • Datenbankrolle

  • SQL Server-Benutzer

  • Windows-Gruppe

  • Windows-Benutzer

USER sollte nur verwendet werden, wenn Sie einem Benutzer eine erweiterte Eigenschaft hinzufügen.

Wichtiger HinweisWichtig
USER als Typ der Ebene 0, der auf Ebene 1 oder Objekten der Ebene 2 definiert ist, wird in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die beim Entwickeln neuer Anwendungen das Verwenden dieses Features bei neuen Entwicklungsarbeiten, und planen Sie die Änderung von Anwendungen, die dieses Feature zurzeit verwenden. Verwenden Sie stattdessen SCHEMA als Typ der Ebene 0.

1

Unterschiedlich

 

 

 

2

Unterschiedlich

 

 

 

Dienst (auf Server)

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

SERVICE

ALTER für SERVICE

ALTER für SERVICE

Oder

CONTROL für SERVICE

Oder

TAKE OWNERSHIP für SERVICE

Oder

VIEW DEFINITION für SERVICE

1

Keine

 

 

2

Keine

 

 

Symmetrischer Schlüssel

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

0

SYMMETRIC KEY

ALTER für CERTIFICATE

Beliebig für KEY

1

Keine

 

 

2

Keine

 

 

Synonym

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

SYNONYM

CONTROL für SYNONYM

Beliebige für OBJECT

 

2

Keine

 

 

 

Tabelle

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

TABLE

ALTER für OBJECT der Tabelle

Beliebige für COLUMN

Oder

Beliebige für OBJECT

Gilt für benutzerdefinierte Tabellen. Wenn kein Typ der Ebene 2 angegeben wird, gilt die Eigenschaft für die Tabelle selbst.

2

COLUMN

ALTER für OBJECT der Tabelle

Beliebige für COLUMN

Oder

Beliebige für OBJECT

 

2

CONSTRAINT

ALTER für OBJECT der Tabelle

ALTER für OBJECT

Oder

CONTROL für OBJECT

Oder

TAKE OWNERSHIP für OBJECT

Oder

VIEW DEFINITION für OBJECT

Gilt für die folgenden Einschränkungen:

  • CHECK

  • DEFAULT

  • FOREIGN KEY

  • PRIMARY KEY

  • UNIQUE

2

INDEX

ALTER für OBJECT der Tabelle

Beliebige für COLUMN

Oder

Beliebige für OBJECT

Gilt für relationale und XML-Indizes.

2

TRIGGER

ALTER für OBJECT der Tabelle

ALTER für OBJECT

Oder

CONTROL für OBJECT

Oder

TAKE OWNERSHIP für OBJECT

Oder

VIEW DEFINITION für OBJECT

Gilt für die folgenden DMI-Trigger:

  • CLR

  • Transact-SQL

Gilt nicht für DDL-Trigger.

Beispiel:

Im folgenden Beispiel wird der Address-Tabelle im Person-Schema eine erweiterte Eigenschaft hinzugefügt.

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

Im folgenden Beispiel wird dem Index IX_Address_StateProviceID für die Address-Tabelle im Person-Schema eine erweiterte Eigenschaft hinzugefügt.

USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Nonclustered index on StateProvinceID.', 
@level0type = N'SCHEMA', @level0name = Person, 
@level1type = N'TABLE',  @level1name = Address,
@level2type = N'INDEX',  @level2name = IX_Address_StateProvinceID;
GO

Trigger

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

TRIGGER

ALTER ANY TRIGGER für DATABASE

ALTER ANY TRIGGER für DATABASE

Gilt nur für DDL-Trigger.

1

Keine

 

 

 

2

Keine

 

 

 

Typ

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

TYPE

CONTROL für TYPE

Beliebige für TYPE

Gilt für benutzerdefinierte Typen, die in früheren Versionen von SQL Server erstellt wurden.

Dieser Parameter wird aus Gründen der Abwärtskompatibilität bereitgestellt. Weitere Informationen finden Sie unter Als veraltet markierte Features des Datenbankmoduls in SQL Server 2008.

1

Keine

 

 

 

2

Keine

 

 

 

Typ

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

TYPE

CONTROL für TYPE

Beliebige für TYPE

 

2

Keine

 

 

 

Sicht

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

VIEW

ALTER für OBJECT der Sicht

Beliebige für COLUMN

Oder

Beliebige für OBJECT

Gilt für benutzerdefinierte Sichten. Wenn kein Typ der Ebene 2 angegeben wird, gilt die Eigenschaft für die Sicht selbst.

2

COLUMN

ALTER für OBJECT der Sicht

Beliebige für COLUMN

Oder

Beliebige für OBJECT

 

2

INDEX

ALTER für OBJECT der Sicht

Beliebige für COLUMN

Oder

Beliebige für OBJECT

Gilt für relationale und XML-Indizes.

2

TRIGGER

ALTER für OBJECT der Sicht

ALTER ANY TRIGGER für DATABASE

Oder

ALTER für OBJECT

Oder

CONTROL für OBJECT

Oder

TAKE OWNERSHIP für OBJECT

Oder

VIEW DEFINITION für OBJECT

Gilt für die folgenden DMI-Trigger:

  • CLR

  • Transact-SQL

Gilt nicht für DDL-Trigger.

XML-Schemaauflistung

Ebene

Ebenentyp

Erforderliche Berechtigungen zum Hinzufügen oder Löschen einer erweiterten Eigenschaft

Erforderliche Berechtigungen zum Anzeigen einer erweiterten Eigenschaft

Kommentare

0

SCHEMA oder USER

 

 

SCHEMA sollte statt USER verwendet werden. Weitere Informationen finden Sie im Abschnitt zum Vergleich zwischen Schema und Benutzer weiter unten in diesem Thema.

1

XML SCHEMA COLLECTION

ALTER für XML SCHEMA COLLECTION

ALTER für XML SCHEMA COLLECTION

Oder

CONTROL für XML SCHEMA COLLECTION

Oder

REFERENCES für XML SCHEMA COLLECTION

Oder

TAKE OWNERSHIP für XML SCHEMA COLLECTION

Oder

VIEW DEFINITION für XML SCHEMA COLLECTION

Erweiterte Eigenschaften können nicht zu einem XML-Namespace hinzugefügt werden.

2

Keine

 

 

 

Objekte ohne Unterstützung erweiterter Eigenschaften

Für die folgenden Objekte können keine erweiterten Eigenschaften definiert werden:

  • Objekte im Datenbankbereich, die nicht in den obigen Tabellen aufgeführt sind. Dies schließt Volltextobjekte ein.

  • Objekte außerhalb des Datenbankbereichs wie z. B. HTTP-Endpunkte.

  • Unbenannte Objekte wie z. B. Partitionsfunktionsparameter.

  • Zertifikate, symmetrische Schlüssel, asymmetrische Schlüssel und Anmeldeinformationen.

  • Systemdefinierte Objekte wie z. B. Systemtabellen, Katalogsichten und gespeicherte Systemprozeduren.

Schema im Vergleich zu Benutzer

In früheren SQL Server-Versionen waren Benutzer die Besitzer von Datenbankobjekten, wie Tabellen, Sichten und Triggern. Aus diesem Grund war das Hinzufügen einer erweiterten Eigenschaft zu einem dieser Objekte sowie das Angeben eines Benutzernamens als Typ der Ebene 0 zulässig. Datenbankobjekte sind nun in Schemas enthalten, die unabhängig von den Benutzern sind, die Besitzer der Schemas sind.

Sie sollten beachten, dass eine Mehrdeutigkeit bewirkt werden kann, wenn Sie eine erweiterte Eigenschaft auf ein Datenbankobjekt anwenden und USER als Typ der Ebene 0 angeben.Angenommen, Benutzer Mary besitzt beispielsweise zwei Schemas (Mary und MySchema), und diese Schemas enthalten beide eine Tabelle namens MyTable. Wenn Mary der MyTable-Tabelle eine erweiterte Eigenschaft hinzufügt und @level0type = N'USER', @level0name = Mary angibt, ist nicht eindeutig, auf welche Tabelle die erweiterte Eigenschaft angewendet wird. Aus Gründen der Abwärtskompatibilität wendet SQL Server die Eigenschaft auf die Tabelle im Schema namens Mary an. Weitere Informationen zu Benutzern und Schemas finden Sie unter Trennung von Benutzer und Schema.

Verwenden von Input Mask im Vergleich zu CHECK-Einschränkungen

Sowohl CHECK-Einschränkungen als auch erweiterte Eigenschaften, die eine Eingabemaske bereitstellen, können zum Angeben des Musters von Daten verwendet werden, das für Tabellen- oder Sichtspalten erwartet wird. Die meisten Sites wählen eine der beiden Optionen aus, wenn nicht einer der folgenden Umstände vorliegt:

  • Die CHECK-Einschränkungen wurden als Zwischenmeasure verwendet, bis alle Programme, die diese Tabelle verwenden, geändert werden konnten, um die Input Mask-Eigenschaften zu verwenden.

  • Die Site unterstützt auch Benutzer, die die Daten mithilfe von Ad-hoc-Tools aktualisieren können, die die erweiterten Eigenschaften nicht lesen.

Der Vorteil der Input Mask-Eigenschaft gegenüber der CHECK-Einschränkung liegt darin, dass die Logik in den Anwendungen angewendet wird. Letztere können informativere Fehler generieren, wenn ein Benutzer Daten bereitstellt, die nicht ordnungsgemäß formatiert sind. Der Nachteil der Input Mask-Eigenschaft besteht darin, dass ein separater Aufruf von fn_listextendedproperty oder sys.extended_properties erforderlich ist, um diese Eigenschaft abzurufen; außerdem muss die Logik zum Erzwingen der Maske in allen Programmen hinzugefügt werden.

Replizieren erweiterter Eigenschaften

Erweiterte Eigenschaften werden nur in der anfänglichen Synchronisierung zwischen dem Verleger und dem Abonnenten repliziert. Wenn Sie eine erweiterte Eigenschaft nach der anfänglichen Synchronisierung hinzufügen oder ändern, wird die Änderung nicht repliziert. Weitere Informationen zum Replizieren von Datenbankobjekten finden Sie unter Veröffentlichen von Daten und Datenbankobjekten.

Verwenden erweiterter Eigenschaften in Anwendungen

Erweiterte Eigenschaften stellen nur einen benannten Speicherort bereit, in dem die Daten gespeichert werden sollen. Alle Anwendungen müssen so geschrieben sein, dass die Eigenschaft abgefragt wird und die entsprechenden Aktionen ausgeführt werden. Beispielsweise wird durch Hinzufügen einer Caption-Eigenschaft zu einer Spalte keine Beschriftung erstellt, die von einer Anwendung angezeigt werden kann. Jede Anwendung muss so geschrieben sein, dass die Beschriftung gelesen und ordnungsgemäß angezeigt wird.

So fügen Sie eine erweiterte Eigenschaft hinzu

So aktualisieren Sie eine erweiterte Eigenschaft

So löschen Sie eine erweiterte Eigenschaft

So zeigen Sie eine erweiterte Eigenschaft an