Benutzerdefinierte CLR-Typen
Gilt für:SQL Server
SQL Server bietet Ihnen die Möglichkeit, Datenbankobjekte zu erstellen, die mit einer Assembly programmiert werden, die in der Common Language Runtime (CLR) von .NET Framework erstellt wurde. Zu den Datenbankobjekten, die das umfangreiche Programmierungsmodell der CLR nutzen können, zählen Trigger, gespeicherte Prozeduren, Funktionen, Aggregatfunktionen und Typen.
Hinweis
Die Möglichkeit zum Ausführen von CLR-Code ist in SQL Server standardmäßig auf OFF festgelegt. Die CLR kann mithilfe der gespeicherten sp_configure
Systemprozedur aktiviert werden.
Sie können benutzerdefinierte Typen (USER-Defined Types, UDTs) verwenden, um das skalare Typsystem des Servers zu erweitern und die Speicherung von CLR-Objekten in einer SQL Server-Datenbank zu ermöglichen. UDTs können mehrere Elemente enthalten und Verhaltensweisen aufweisen und diese von den herkömmlichen Alias-Datentypen unterscheiden, die aus einem einzelnen SQL Server-Systemdatentyp bestehen.
Da vom System als Ganzes auf UDTs zugegriffen wird, kann sich die Verwendung für komplexe Datentypen negativ auf die Leistung auswirken. Komplexe Daten werden im Allgemeinen am besten mit herkömmlichen Zeilen und Tabellen modelliert. UDTs in SQL Server eignen sich gut für den folgenden Datentyp:
- Datum, Zeit, Währung und erweiterte numerische Typen
- Geospatial-Anwendungen
- Codierte oder verschlüsselte Daten
Der Prozess der Entwicklung von UDTs in SQL Server besteht aus den folgenden Schritten:
Code und Erstellen der Assembly, die udT definiert. UDTs werden mithilfe einer der sprachen definiert, die von der Common Language Runtime (CLR) von .NET Framework unterstützt werden, die überprüfbaren Code erzeugen. Dazu gehören C# und Visual Basic .NET. Die Daten werden in Feldern und Eigenschaften einer .NET Framework-Klasse oder -Struktur verfügbar gemacht. Das Verhalten wird durch die Methoden der Klasse oder Struktur definiert.
Registrieren Sie die -Assembly. UDTs können über die Visual Studio-Benutzeroberfläche in einem Datenbankprojekt oder mithilfe der Transact-SQL
CREATE ASSEMBLY
-Anweisung bereitgestellt werden, die die Assembly mit der Klasse oder Struktur in eine Datenbank kopiert.Erstellen Sie das UDT in SQL Server. Nachdem eine Assembly in eine Hostdatenbank geladen wurde, verwenden Sie die Transact-SQL CREATE TYPE-Anweisung, um ein UDT zu erstellen und die Member der Klasse oder Struktur als Member der UDT verfügbar zu machen. UDTs sind nur im Kontext einer einzelnen Datenbank vorhanden und weisen nach der Registrierung keine Abhängigkeiten mehr von den externen Dateien auf, aus denen sie erstellt wurden.
Erstellen Sie Tabellen, Variablen oder Parameter mithilfe des UDT. Ein benutzerdefinierter Typ kann als Spaltendefinition einer Tabelle, als Variable in einem Transact-SQL Batch oder als Argument einer Transact-SQL Funktion oder gespeicherter Prozedur verwendet werden.
In diesem Abschnitt
Artikel | Beschreibung |
---|---|
Erstellen benutzerdefinierter Typen | Beschreibt das Erstellen von UDTs. |
Registrieren von benutzerdefinierten Typen in SQL Server- | Beschreibt, wie UDTs in SQL Server registriert und verwaltet werden. |
Arbeiten mit benutzerdefinierten Typen in SQL Server- | Beschreibt das Erstellen von Abfragen mit UDTs. |
benutzerdefinierten Access-Typen in ADO.NET | Beschreibt, wie Sie mit UDTs mit .NET Framework Datenanbieter für SQL Server in ADO.NET arbeiten. |