Freigeben über


Definieren von benutzerdefinierten Typtabellen und -spalten (USER-Defined Type, UDT)

Gilt für:SQL Server

Sobald die Assembly, die die benutzerdefinierte Typdefinition (UDT) enthält, in einer SQL Server-Datenbank registriert ist, kann sie in einer Spaltendefinition verwendet werden. Weitere Informationen finden Sie unter CREATE TYPE.

Erstellen von Tabellen mit UDTs

Es gibt keine spezielle Syntax zum Erstellen einer UDT-Spalte in einer Tabelle. Sie können den Namen des UDT in einer Spaltendefinition verwenden, als wäre es einer der systeminternen SQL Server-Datentypen. Die folgende CREATE TABLE Transact-SQL-Anweisung erstellt eine Tabelle mit dem Namen Pointsmit einer Spalte mit dem Namen ID, die als int Identitätsspalte und den Primärschlüssel für die Tabelle definiert ist. Die zweite Spalte wird PointValuemit einem Datentyp von Pointbenannt. Der in diesem Beispiel verwendete Schemaname ist dbo. Sie müssen über die erforderlichen Berechtigungen verfügen, um einen Schemanamen anzugeben. Wenn Sie den Schemanamen nicht angeben, wird das Standardschema für den Datenbankbenutzer verwendet.

CREATE TABLE dbo.Points
(
    ID INT IDENTITY (1, 1) PRIMARY KEY,
    PointValue Point
);

Erstellen von Indizes in UDT-Spalten

Es gibt zwei Optionen für das Indizieren einer UDT-Spalte:

  • Indizieren Sie den vollständigen Wert. In diesem Fall können Sie einen Index über die gesamte UDT-Spalte mithilfe der CREATE INDEX Transact-SQL-Anweisung erstellen, wenn das UDT binär sortiert ist.

  • Indizieren Sie UDT-Ausdrücke. Sie können Indizes auf persistenten berechneten Spalten über UDT-Ausdrücken erstellen. Der UDT-Ausdruck kann ein Feld, eine Methode oder eine Eigenschaft eines UDT sein. Der Ausdruck muss deterministisch sein und darf keinen Datenzugriff ausführen.

Weitere Informationen finden Sie unter CREATE INDEX.