Erstellen von Datenbankobjekten mit CLR-Integration (Common Language Runtime)
Datenbankobjekte können mithilfe der SQL Server-Integration in .NET Framework Common Language Runtime (CLR) erstellt werden. Verwalteter Code, der innerhalb von Microsoft SQL Server ausgeführt wird, wird als "CLR-Routine" bezeichnet. Es gibt folgende Routinen:
Benutzerdefinierte Skalarwertfunktionen (Skalar-UDFs)
Benutzerdefinierte Tabellenwertfunktionen (TVFs)
Benutzerdefinierte Prozeduren (UDPs)
Benutzerdefinierte Trigger
CLR-Routinen haben in verwaltetem Code dieselbe Struktur. Sie werden öffentlichen, statischen (freigegeben in Microsoft Visual Basic .NET) 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-Routinentyp verfügt über eine Transact-SQL-Deklaration und kann überall da in SQL Server verwendet werden, wo die Transact-SQL-Entsprechung verwendet werden kann. Skalar-UDFs können beispielsweise in jedem Skalarausdruck verwendet werden. Eine TVF kann in jeder FROM-Klausel verwendet werden. Eine Prozedur kann in einer EXEC-Anweisung oder von einer Clientanwendung aufgerufen werden.
Hinweis |
---|
CLR-Objekte (benutzerdefinierte Funktion, benutzerdefinierter Typ oder Trigger)können auf der Common Language Runtime auf mehreren Threads (paralleler Plan) ausgeführt werden, wenn der Abfrageoptimierer feststellt, dass dies vorteilhaft ist. Benutzerdefinierte Funktionen, die auf Daten zugreifen, werden jedoch auf einem seriellen Plan ausgeführt. Bei Ausführung auf einer Serverversion vor SQL Server 2008 müssen benutzerdefinierte Funktionen, die LOB-Parameter oder Rückgabewerte enthalten, ebenfalls auf einem seriellen Plan ausgeführt werden. Weitere Informationen finden Sie unter Parallele Abfrageverarbeitung. |
Beachten Sie, dass Visual Studio .NET 2003 nicht zur Programmierung der CLR-Integration verwendet werden kann. SQL Server umfasst eine vorinstallierte Version von .NET Framework, und Visual Studio .NET 2003 kann die Assemblys von .NET Framework 2.0 nicht verwenden.
In der folgenden Tabelle sind die Themen in diesem Abschnitt aufgeführt.
Erste Schritte mit der CLR-Integration
Enthält eine kurze Übersicht über die Bibliotheken und Namespaces, die benötigt werden, um Objekte mithilfe der CLR-Integration in SQL Server zu kompilieren. 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.Beschränkungen des Programmiermodells für die CLR-Integration
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 die .NET Framework-Entsprechungen.Übersicht über benutzerdefinierte Attribute der CLR-Integration
Enthält Informationen zu benutzerdefinierten Attributen der CLR-Integration.CLR-benutzerdefinierte 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.CLR-gespeicherte Prozeduren
Beschreibt die Implementierung und Verwendung von CLR-gespeicherten Prozeduren.CLR-Trigger
Beschreibt die Implementierung und Verwendung von CLR-Triggern.