Dela via


Skapa användardefinierade aggregeringar

gäller för: SQL Server 2016 (13.x) och senare versioner

Du kan skapa ett databasobjekt i SQL Server som är programmerat i en CLR-sammansättning. Databasobjekt som kan använda den omfattande programmeringsmodellen som tillhandahålls av CLR inkluderar utlösare, lagrade procedurer, funktioner, aggregerade funktioner och typer.

Precis som de inbyggda mängdfunktionerna i Transact-SQL utför användardefinierade aggregeringsfunktioner en beräkning på en uppsättning värden och returnerar ett enda värde.

Att skapa en användardefinierad aggregeringsfunktion i SQL Server innebär följande steg:

  • Definiera den användardefinierade aggregeringsfunktionen som en klass i ett Microsoft .NET Framework-språk som stöds. Mer information om hur du programmerar användardefinierade aggregeringar i CLR finns i CLR-användardefinierade aggregeringar. Kompilera den här klassen för att skapa en CLR-sammansättning med hjälp av lämplig språkkompilator.

  • Registrera sammansättningen i SQL Server med hjälp av instruktionen CREATE ASSEMBLY. Mer information om sammansättningar i SQL Server finns i Sammansättningar (databasmotor).

  • Skapa den användardefinierade aggregering som refererar till den registrerade sammansättningen med hjälp av instruktionen CREATE AGGREGATE.

Körning av CLR-kod är inaktiverat som standard i SQL Server. Du kan skapa, ändra och släppa databasobjekt som refererar till hanterade kodmoduler, men dessa referenser körs inte i SQL Server, såvida inte det clr-aktiverade serverkonfigurationsalternativet är aktiverat med hjälp av sp_configure.

När du distribuerar ett SQL Server-projekt i Microsoft Visual Studio registreras en sammansättning i databasen som har angetts för projektet. När du distribuerar projektet skapas även CLR-funktioner i databasen för alla metoder som kommenterats med attributet SqlFunction. Mer information finns i Distribuera CLR-databasobjekt.

Skapa, ändra eller släppa en sammansättning

Skapa en användardefinierad aggregering