Compartilhar via


Como: Criar and Run a CLR SQL servidor função definida pelo usuário

Criar uma função SQL definida pelo usuário adicionando uma User-Defined Function a um projeto SQL Server.Após a implantação bem-sucedida, a função definida pelo usuário pode ser chamada e executada.

Observação:

Por padrão, o recurso de integração Common Language Runtime (CLR) fica desativado no Microsoft SQL Server e deve ser habilitado para usar itens de projeto SQL Server.Para ativar integração CLR, use o CLR enabled opção de do sp_configure procedimento armazenado.Para obter mais informações, consulte Habilitar integração CLR.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de 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 do SQL servidor, ou criar um novo.Para obter mais informações, consulte Como: Criar um projeto de SQL servidor.

  2. A partir do menu Project, selecione Add New Item.

  3. Selecione User-Defined Function na Adicionar Novo Item Caixa de diálogo caixa.

  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.

    Observação:

    Exemplos de C++ devem ser compilados com o / CLR : segurança opção do compilador.

  6. Para Visual Basic e Visual C#, em Solution Explorer, abra a pasta TestScripts e clique duas vezes no arquivo Test.sql.Adicione código para executar a função definida pelo usuário.Consulte o segundo exemplo que segue este procedimento.

    Para Visual C++, em Solution Explorer, clique duas vezes no arquivo debug.sql 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.

  7. Implante a função definida pelo usuário ao SQL Server.Para obter mais informações, consulte Como: Implantar o SQL servidor projeto Items em um SQL servidor.

  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.

Após criar a função, implante-a ao SQL Server.Para mais informações, consulte: Como: Implantar o SQL servidor projeto Items em um SQL servidor.

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;
    }
}
#include "stdafx.h"

#using <System.dll>
#using <System.Data.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Data;
using namespace System::Data::Sql;
using namespace System::Data::SqlTypes;
using namespace Microsoft::SqlServer::Server;

// In order to debug your Aggregate, add the following to your debug.sql file:
//
// SELECT dbo.addTax(10)
//

public ref class UserDefinedFunctions
{
public:
    static initonly double SALES_TAX = 0.086;

    [SqlFunction()]
    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 no arquivo Test.sql (debug.sql em Visual C++) 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 de SQL servidor

Como: Criar e executar um CLR SQL servidor Stored procedimento

Como: Criar e executar um disparar CLR SQL servidor

Como: Criar e executar uma agregação de servidor SQL CLR

Como: Criar and Run a CLR SQL servidor função definida pelo usuário

Como: Criar and Run a CLR SQL servidor tipo definido pelo usuário

Demonstra Passo a passo: Criando um procedimento armazenado em código gerenciado

Como: Depurar um SQL CLR Procedimento Armazenado

Conceitos

Introduction to Integration CLR SQL Servidor

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

Modelos de Item para Projetos do SQL Server

Referência

Atributos para projetos SQL Server e objetos de bancos de dados

Outros recursos

Depuração de banco de dados SQL CLR