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.