Criar agregações definidas pelo usuário

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores

Você pode criar um objeto de banco de dados dentro do SQL Server que é programado em um assembly CLR. Os objetos de banco de dados que podem usar o modelo de programação avançado fornecido pelo CLR incluem gatilhos, procedimentos armazenados, funções, funções de agregação e tipos.

Assim como as funções de agregação internas fornecidas no Transact-SQL, as funções de agregação definidas pelo usuário executam o cálculo de um conjunto de valores e retornam um único valor.

A criação de uma função agregada definida pelo usuário no SQL Server envolve as seguintes etapas:

  • Definir a função de agregação definida pelo usuário como uma classe em uma linguagem compatível pelo Microsoft .NET Framework. Para obter mais informações sobre como programar agregações definidas pelo usuário em CLR, veja Agregações CLR definidas pelo usuário. Compile essa classe para criar um assembly CLR que usa o compilador de linguagem apropriado.

  • Registre o assembly no SQL Server usando a instrução CREATE ASSEMBLY. Para obter mais informações sobre assemblies no SQL Server, consulte Assemblies (Mecanismo de Banco de Dados).

  • Criar a agregação definida pelo usuário que referencia o assembly registrado que usa a instrução CREATE AGGREGATE.

A execução do código CLR está desativada por padrão no SQL Server. É possível criar, alterar e remover objetos de banco de dados que fazem referência a módulos de código gerenciado, mas essas referências não serão executadas no SQL Server, a menos que a opção clr enabled seja habilitada com o uso de sp_configure (Transact-SQL).

A implantação de um projeto do SQL Server no Microsoft Visual Studio registra um assembly no banco de dados especificado para o projeto. Ao implantar o projeto, cria-se também as funções CLR no banco de dados para todos os métodos anotados com o atributo SqlFunction . Para obter mais informações, consulte Deploying CLR Database Objects.

Criar, modificar ou remover um assembly

Criar uma agregação definida pelo usuário

Confira também