Partilhar via


Como: Criar e executar uma função de SQL Server User-Defined usando a integração do Common Language Runtime

Criar uma função definida pelo usuário do SQL adicionando um User-defined função a um projeto de banco de dados SQL Server Common Language Runtime (CLR SQL). Após a implantação bem-sucedida, a função definida pelo usuário pode ser chamada e executada.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Criando Funções SQL Server definidas pelo usuário

Para criar e implantar essa função usando Visual Studio.

  1. Abra um existente Projeto de banco de dados do CLR SQL, ou criar um novo. Para obter mais informações, consulte Como: Criar um projeto para os objetos de banco de dados que usam a integração de tempo de execução de linguagem comum SQL Server.

  2. No menu Project, selecione Add New Item.

  3. No Add New Item caixa de diálogo, selecione User-defined função.

  4. Digite um Name para a nova função definida pelo usuário.

  5. Adicione código para executar quando a função definida pelo usuário é executada. Consulte o primeiro exemplo que segue este procedimento.

  6. Em Solution Explorer, abra o TestScripts pasta e clique duas vezes o Test. SQL o arquivo para abri-lo para edição. Adicione código para executar a função definida pelo usuário. Consulte o segundo exemplo que segue este procedimento.

    ObservaçãoObservação

    Você pode especificar outros scripts como o seu script de depuração padrão. Para obter mais informações, consulte Como: Edite o Script de Test. SQL para executar objetos usar a integração de tempo de execução de linguagem comum de SQL Server.

  7. Implante a função definida pelo usuário ao SQL Server. Para obter mais informações, consulte Como: Implantar itens de projeto de banco de dados do CLR de SQL um SQL Server.

    Observação importanteImportante

    SQL Server 2005e SQL Server 2008 oferece suporte somente a os projetos deSQL Server que foram criados com o 2.0, 3.0 ou versão 3.5 do.NET Framework. Se você tentar implantar um SQL Server projeto SQL Server 2005 ou SQL Server 2008, um erro será exibida: Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database (onde AssemblyName é o nome do assembly que você estiver implantando). Para obter mais informações, consulte Como: Criar um projeto para os objetos de banco de dados que usam a integração de tempo de execução de linguagem comum SQL Server.

  8. Pressione F5 para depurar a função definida pelo usuário executando-a no SQL Server.

Descrição

O exemplo de código a seguir cria uma função escalar definida pelo usuário chamada addTax que recebe um preço como um parâmetro, adiciona imposto sobre vendas a ele e retorna o preço mais o imposto.

Depois de criar a função, implantá-lo para o SQL Server. Para mais informações, consulte: Como: Implantar itens de projeto de banco de dados do CLR de SQL um SQL Server.

Código

Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server

Partial Public Class UserDefinedFunctions

    Public Const SALES_TAX As Double = 0.086

    <SqlFunction()> 
    Public Shared Function addTax(ByVal originalAmount As SqlDouble) As SqlDouble

        Dim taxAmount As SqlDouble = originalAmount * SALES_TAX

        Return originalAmount + taxAmount
    End Function
End Class
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions
{
    public const double SALES_TAX = .086;

    [SqlFunction()]
    public static SqlDouble addTax(SqlDouble originalAmount)
    {
        SqlDouble taxAmount = originalAmount * SALES_TAX;

        return originalAmount + taxAmount;
    }
}

Descrição

Adicione código para testar a função definida pelo usuário para o arquivo Test. SQL na pasta TestScripts no seu projeto. Por exemplo, para testar essa função, use uma consulta, tal como "SELECT dbo.addTax(10)". Você deve ver o valor retornado "10.86".

Código

SELECT dbo.addTax(10)

Consulte também

Tarefas

Como: Criar um projeto para os objetos de banco de dados que usam a integração de tempo de execução de linguagem comum SQL Server

Como: Criar e executar um procedimento armazenado do SQL Server usando a integração do Common Language Runtime

Como: Criar e executar um disparador de SQL Server usando a integração do Common Language Runtime

Como: Criar e executar um agregado de SQL Server usando a integração do Common Language Runtime

Como: Criar e executar um tipo de SQL Server User-Defined usando a integração do Common Language Runtime

Demonstra Passo a passo: Criar um procedimento armazenado no código gerenciado

Como: Depurar um CLR SQL procedimento armazenado

Referência

Atributos para objetos de banco de dados e de projetos de banco de dados do CLR de SQL

Conceitos

Introduction to SQL Server CLR Integration (ADO.NET)

Vantagens de usar código gerenciado para criar objetos de bancos de dados

Criar objetos de SQL Server no código gerenciado

Outros recursos

SQL CLR Database Debugging