Erstellen von benutzerdefinierten Aggregaten

Gilt für: SQL Server 2016 (13.x) und spätere Versionen

Sie können ein Datenbankobjekt innerhalb von SQL Server erstellen, das in einer CLR-Assembly programmiert ist. Datenbankobjekte, die das vom CLR bereitgestellte umfangreiche Programmiermodell verwenden können, umfassen Trigger, gespeicherte Prozeduren, Funktionen, Aggregatfunktionen und Typen.

Wie die integrierten Aggregatfunktionen, die in Transact-SQL bereitgestellt werden, führen benutzerdefinierte Aggregatfunktionen eine Berechnung für eine Gruppe von Werten aus und geben einen einzelnen Wert zurück.

Das Erstellen einer benutzerdefinierten Aggregatfunktion in SQL Server umfasst die folgenden Schritte:

  • Definieren Sie die benutzerdefinierte Aggregatfunktion als Klasse in einer von Microsoft .NET Framework unterstützten Sprache. Weitere Informationen zum Programmieren benutzerdefinierter Aggregate in der CLR finden Sie unter Benutzerdefinierte CLR-Aggregate. Kompilieren dieser Klasse mithilfe des entsprechenden Sprachcompilers, um eine Assembly zu erstellen.

  • Registrieren Sie die Assembly in SQL Server mithilfe der CREATE ASSEMBLY-Anweisung. Weitere Informationen zu Assemblys in SQL Server finden Sie unter Assemblys (Database Engine).For more information about assemblies in SQL Server, see Assemblies (Database Engine).

  • Erstellen des benutzerdefinierten Aggregats, das auf die registrierte Assembly verweist, mithilfe der CREATE AGGREGATE-Anweisung.

Das Ausführen von CLR-Code ist in SQL Server standardmäßig deaktiviert. Sie können Datenbankobjekte erstellen, ändern und ablegen, die auf verwaltete Codemodule verweisen. Diese Verweise werden jedoch nicht in SQL Server ausgeführt, es sei denn, die aktivierte Clr-Option wird mithilfe von sp_configure (Transact-SQL) aktiviert.

Durch die Bereitstellung eines SQL Server-Projekts in Microsoft Visual Studio wird eine Assembly in der Datenbank registriert, die für das Projekt angegeben wurde. Bei der Bereitstellung des Projekts werden auch CLR-Funktionen in der Datenbank für alle Methoden erstellt, die mit dem SqlFunction -Attribut versehen sind. Weitere Informationen finden Sie unter Deploying CLR Database Objects.

Erstellen, Ändern oder Ablegen einer Assembly

Erstellen eines benutzerdefinierten Aggregats

Siehe auch