Arbeiten mit benutzerdefinierten Typen: Definieren von UDT-Tabellen und -Spalten

Gilt für:SQL Server

Nachdem die Assembly, die die Definition des benutzerdefinierten Typs (User-Defined Type, UDT) enthält, in einer Microsoft SQL Server-Datenbank registriert wurde, kann sie in einer Spaltendefinition verwendet werden. Weitere Informationen finden Sie unter CREATE TYPE (Transact-SQL).

Erstellen von Tabellen mit UDTs

Es gibt keine spezielle Syntax für das Erstellen einer UDT-Spalte in einer Tabelle. Sie können den Namen des UDT in einer Spaltendefinition verwenden, als wäre er einer der systeminternen SQL Server Datentypen. Die folgende CREATE TABLE Transact-SQL-Anweisung erstellt eine Tabelle mit dem Namen Points mit einer Spalte namens ID, die als int-Identitätsspalte und primärer Schlüssel für die Tabelle definiert ist. Die zweite Spalte heißt PointValue mit dem Datentyp Point. Der in diesem Beispiel verwendete Schemaname lautet dbo. Beachten Sie, dass Sie über die erforderlichen Berechtigungen verfügen müssen, 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 für 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 erstellen, wenn der UDT binär sortiert ist, indem Sie die CREATE INDEX-Transact-SQL-Anweisung verwenden.

  • 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 (Transact-SQL).

Weitere Informationen

Arbeiten mit benutzerdefinierten Typen in SQL Server
CREATE TYPE (Transact-SQL)
Benutzerdefinierte CLR-Typen