Benutzerdefinierte CLR-Typen

 

SQL Server ermöglicht das Erstellen von Datenbankobjekten, die für eine Assembly programmiert sind, die in der CLR (Common Language Runtime) 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.

System_CAPS_ICON_note.jpg Hinweis


Die Fähigkeit zum Ausführen von CLR-Code auf OFF festgelegt ist, wird standardmäßig in SQL Server. Die CLR kann aktiviert werden, mithilfe der Sp_configure gespeicherte Systemprozedur.

Beginnend mit SQL Server 2005, können Sie benutzerdefinierte Typen (UDTs) das skalartypsystem des Servers, zu erweitern, Aktivieren der Speicherung von CLR-Objekten einer SQL Server Datenbank. UDTs können mehrere Elemente enthalten und Verhalten zeigen, das sie von den herkömmlichen Aliasdatentypen unterscheidet, die aus einem einzelnen SQL Server-Systemdatentyp bestehen.

Da das System auf UDTs als Ganzes zugreift, kann sich ihre 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 sind in SQL Server für folgende Zwecke geeignet:

  • Datum, Zeit, Währung und erweiterte numerische Typen

  • Geospatial-Anwendungen

  • Codierte oder verschlüsselte Daten

In SQL Server besteht der Prozess der UDTs-Entwicklung aus den folgenden Schritten:

  1. Code, und erstellen Sie die Assembly, die den UDT definiert. UDTs werden in einer beliebigen, von der .NET Framework-CLR (Common Language Runtime) unterstützten Sprache definiert, die überprüfbaren Code generiert. Dies schließt Visual 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.

  2. Registrieren der Assembly an. UDTs können über die Visual Studio-Benutzeroberfläche in einem Datenbankprojekt oder mit derTransact-SQL-Anweisung CREATE ASSEMBLY bereitgestellt werden, die die Assembly, die die Klasse oder Struktur enthält, in eine Datenbank kopiert.

  3. Erstellen Sie den UDT in SqlServer. Sobald eine Assembly in eine Hostdatenbank geladen wurde, erstellen Sie einen UDT mit der Transact-SQL-Anweisung CREATE TYPE, und machen die Elemente der Klasse oder Struktur als Elemente des UDT verfügbar. 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.

    System_CAPS_ICON_note.jpg Hinweis


    Vor SQL Server 2005 wurden aus .NET Framework-Assemblys erstellte UDTs nicht unterstützt. Allerdings können Sie weiterhin verwenden SQL Server Aliasdatentypen mit Sp_addtype. Die CREATE TYPE-Syntax kann zum Erstellen sowohl von systemeigenen, benutzerdefinierten SQL Server-Datentypen als auch UDTs verwendet werden.

  4. Erstellen von Tabellen, Variablen oder Parametern, die mit dem UDT ab SQL Server 2005, ein UDT als Spaltendefinition einer Tabelle, als Variable in verwendet werden kann eine Transact-SQL Batch oder als Argument ein Transact-SQL Funktion oder gespeicherten Prozedur.

Erstellen eines benutzerdefinierten Typs
Beschreibt das Erstellen von UDTs.

Registrieren von benutzerdefinierten Typen in SQLServer
Beschreibt, wie UDTs in SQL Server registriert und verwaltet werden.

Arbeiten mit benutzerdefinierten Typen in SQLServer
Beschreibt das Erstellen von Abfragen mit UDTs.

Zugreifen auf benutzerdefinierte Typen in ADO.NET
Beschreibt die Verwendung von UDTs mit dem .NET Framework-Datenanbieter für SQL Server in ADO.NET.

Community-Beiträge

HINZUFÜGEN
Anzeigen: