Delen via


Door de gebruiker gedefinieerde aggregaties maken

Van toepassing op: SQL Server 2016 (13.x) en latere versies

U kunt een databaseobject maken in SQL Server dat is geprogrammeerd in een CLR-assembly. Databaseobjecten die het uitgebreide programmeermodel van de CLR kunnen gebruiken, zijn triggers, opgeslagen procedures, functies, statistische functies en typen.

Net als de ingebouwde statistische functies in Transact-SQL voeren door de gebruiker gedefinieerde statistische functies een berekening uit op een set waarden en retourneren ze één waarde.

Het maken van een door de gebruiker gedefinieerde statistische functie in SQL Server omvat de volgende stappen:

  • Definieer de door de gebruiker gedefinieerde statistische functie als een klasse in een door Microsoft .NET Framework ondersteunde taal. Zie voor meer informatie over het programmeren van door de gebruiker gedefinieerde aggregaties in de CLR door de gebruiker gedefinieerde aggregaten in de CLR. Compileer deze klasse om een CLR-assembly te bouwen met behulp van de juiste taalcompilator.

  • Registreer de assembly in SQL Server met behulp van de CREATE ASSEMBLY-instructie. Zie Assembly's (Database Engine)voor meer informatie over assembly's in SQL Server.

  • Maak de door de gebruiker gedefinieerde aggregatie waarin verwezen wordt naar de geregistreerde assembly met behulp van de CREATE AGGREGATE-instructie.

Het uitvoeren van CLR-code is standaard uitgeschakeld in SQL Server. U kunt databaseobjecten maken, wijzigen en verwijderen die verwijzen naar beheerde codemodules, maar deze verwijzingen worden niet uitgevoerd in SQL Server, tenzij de clr ingeschakeld serverconfiguratieoptie is ingeschakeld met behulp van sp_configure.

Als u een SQL Server-project implementeert in Microsoft Visual Studio, wordt een assembly geregistreerd in de database die voor het project is opgegeven. Als u het project implementeert, worden ook CLR-functies in de database gemaakt voor alle methoden die zijn geannoteerd met het kenmerk SqlFunction. Zie CLR-databaseobjecten implementerenvoor meer informatie.

Een assembly maken, wijzigen of verwijderen

Een door de gebruiker gedefinieerde aggregaat maken