Erstellen von Datenbankobjekten mit common language runtime (CLR)-Integration
Gilt für:SQL Server
Sie können Datenbankobjekte mithilfe der SQL Server-Integration in die Common Language Runtime (CLR) von .NET Framework erstellen. Verwalteter Code, der innerhalb von SQL Server ausgeführt wird, wird als CLR-Routine-bezeichnet. Zu diesen Routinen gehören:
- Benutzerdefinierte Skalarwertfunktionen (Skalar-UDFs)
- Benutzerdefinierte Tabellenwertfunktionen (TVFs)
- Benutzerdefinierte Prozeduren (UDPs)
- Benutzerdefinierte Trigger
CLR-Routinen haben in verwaltetem Code dieselbe Struktur. Sie werden öffentlichen, statischen (in Visual Basic .NET freigegebenen) Methoden einer Klasse zugeordnet. Außer Routinen können auch benutzerdefinierte Typen (UDTs) und benutzerdefinierte Aggregatfunktionen mithilfe von .NET Framework definiert werden. UDTs und benutzerdefinierte Aggregatfunktionen werden ganzen .NET Framework-Klassen zugeordnet.
Jeder .NET Framework-Routinetyp verfügt über eine Transact-SQL-Deklaration und kann an einer beliebigen Stelle in SQL Server verwendet werden, die das Transact-SQL-Äquivalent verwenden kann. Skalar-UDFs können beispielsweise in jedem Skalarausdruck verwendet werden. Ein TVF kann in jeder FROM
Klausel verwendet werden. Eine Prozedur kann in einer EXEC
-Anweisung aufgerufen oder von einer Clientanwendung aufgerufen werden.
Die Ausführung eines CLR-Objekts (benutzerdefinierte Funktion, benutzerdefinierter Typ oder Trigger) für die Common Language Runtime kann für mehrere Threads (paralleler Plan) erfolgen, wenn der Abfrageoptimierer entscheidet, dass es von Vorteil ist. Wenn jedoch eine benutzerdefinierte Funktion auf Daten zugreift, befindet sich die Ausführung in einem seriellen Plan.
In der folgenden Tabelle sind die artikel aufgeführt, die in diesem Abschnitt behandelt werden.
Artikel | Beschreibung |
---|---|
Erste Schritte mit clR-Integration | Enthält eine kurze Übersicht über die Bibliotheken und Namespaces, die zum Kompilieren von Objekten mithilfe der CLR-Integration in SQL Server erforderlich sind. Enthält das Beispiel "Hello World" für eine CLR-gespeicherte Prozedur. |
Unterstützte .NET Framework-Bibliotheken | Enthält Informationen zu den durch die CLR-Integration unterstützten .NET Framework-Bibliotheken. |
Einschränkungen des CLR-Integrationsprogrammiermodells | Enthält Informationen zu Beschränkungen des Programmiermodells für die CLR-Integration. |
SQL Server-Datentypen in .NET Framework | Eine Übersicht über SQL Server-Datentypen und deren .NET Framework-Entsprechungen. |
CLR-Integration: benutzerdefinierte Attribute für CLR-Routinen | Enthält Informationen zu benutzerdefinierten Attributen der CLR-Integration. |
benutzerdefinierte CLR-Funktionen | Beschreibt die Implementierung und Verwendung der unterschiedlichen CLR-Funktionstypen: Tabellenwertfunktionen, Skalarfunktionen und benutzerdefinierte Aggregatfunktionen. |
benutzerdefinierte CLR-Typen | Beschreibt die Implementierung und Verwendung von CLR-benutzerdefinierten Typen. |
gespeicherte CLR-Prozeduren | Beschreibt die Implementierung und Verwendung von CLR-gespeicherten Prozeduren. |
CLR-Trigger | Beschreibt die Implementierung und Verwendung von CLR-Triggern. |