Freigeben über


Erstellen benutzerdefinierter Aggregate

Sie können ein Datenbankobjekt in SQL Server erstellen, das in einer CLR-Assembly programmiert wird.Datenbankobjekte, die das reichhaltige Programmiermodell nutzen können, das von der CLR (Common Language Runtime) bereitgestellt wird, sind z. B. Trigger, gespeichert Prozeduren, Funktionen, Aggregatfunktionen und Typen.

Ebenso wie die integrierten Aggregatfunktionen, die in Transact-SQL bereitgestellt werden, führen benutzerdefinierte Aggregatfunktionen Berechnungen für eine Menge von Werten aus und geben einen einzelnen Wert zurück.

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

  • Definieren der benutzerdefinierten 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 der Assembly in SQL Server mithilfe der CREATE ASSEMBLY-Anweisung. Weitere Informationen zu Assemblys in SQL Server finden Sie unter Assemblys (Database Engine).

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

HinweisHinweis

Bei der Bereitstellung eines SQL Server-Projekts in Microsoft Visual Studio wird eine Assembly in der Datenbank registriert, die für das Projekt angegeben wurde. Beim Bereitstellen des Projekts wird in der Datenbank auch ein benutzerdefiniertes Aggregat für alle Klassendefinitionen erstellt, die mit dem SqlUserDefinedAggregate-Attribut versehen sind. Weitere Informationen finden Sie unter Bereitstellen von CLR-Datenbankobjekten.

HinweisHinweis

Die Funktion zum Ausführen von CLR-Code ist in SQL Server standardmäßig deaktiviert. Sie können Datenbankobjekte, die auf verwaltete Codemodule verweisen, erstellen, ändern oder löschen; diese Verweise werden jedoch nur dann in SQL Server ausgeführt, wenn die clr enabled-Option mithilfe von sp_configure (Transact-SQL) aktiviert wird.

So erstellen, ändern oder löschen Sie eine Assembly

So erstellen Sie ein benutzerdefiniertes Aggregat