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.
Abra um existente Projeto do SQL servidor, ou criar um novo.Para obter mais informações, consulte Como: Criar um projeto de SQL servidor.
A partir do menu Project, selecione Add New Item.
Selecione User-Defined Function na Adicionar Novo Item Caixa de diálogo caixa.
Digite um Name para a nova função definida pelo usuário.
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.
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.
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.
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