Demonstra Passo a passo: Depurando uma função escalar SQL CLR definida pelo usuário
Este tópico se aplica a:
Edição |
Visual Basic |
C# |
C++ |
Desenvolvedores Web |
---|---|---|---|---|
Express |
||||
Padrão |
||||
PRO e equipe |
Legenda de tabela:
Aplica-se |
|
Não é aplicada |
|
Comando ou comandos oculta por padrão. |
Este exemplo mostra como depurar uma função SQL CLR definida pelo usuário (UDF).Ele cria uma nova função SQL CLR definida pelo usuário no banco de dados de exemplo AdventureWorks.
Observação: |
---|
As caixas de diálogo e comandos de menu que você vê podem diferir das descritas na Ajuda dependi NG no configurações ativas ou edição.Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.Para obter mais informações, consulte Configurações do Visual Studio. |
Para depurar uma função escalar CLR SQL definida pelo usuário
Em um novo projeto do SQL Server, estabeleça uma conexão com a banco de dados de exemplo AdventureWorks.Para obter mais informações, consulte Como: Conectar-se a um banco de dados.
Crie uma nova função usando o código da primeira seção do exemplo abaixo e nomeá-la OrderCount.cs.Para obter mais informações, consulte Como: Desenvolver com o SQL servidor tipo de projeto.
Adicionar um script que testa a função incluindo-o em um SELECT demonstrativo. No Solution Explorer clique com o botão direito do mouse no diretório TestScripts, clique Add Test Script, e insira o código da segunda seção do exemplo abaixo.salvar o arquivo com o nome CallOrderCount.sql.clicar com o botão direito do mouse no nome de arquivo e escolher conjunto sistema autônomo padrão o script de depurar.
Coloque um ponto de interrupção no OrderCount.cs na linha que instancia um SqlCommande, nas Depurar menu, clicar Iniciar para compilar, implantar e o projeto de teste de unidade.Quando o ponteiro de instrução, designado por uma seta amarela, aparecer no ponto de interrupção, você está depurando sua função.
Experimente recursos de depuração diferentes.
Passe a demonstrativo instanciando o SqlCommand usando o Passar dentro from the Depurar menu.
No Variáveis locais janela, abra a variável sqlComm, que é um SqlCommande examine seus membros.
Clique Step Into no menu Debug para passar uma linha na função.Observe que o membro sqlComm.CommandText foi instanciado tem.
No Editor de texto, arrastar sqlComm para qualquer local na inspeção janela.A variável agora é adicionada à lista de variáveis observadas.
Escolha Step Into novamente e observe que uma nova janela rotulada Dynamic T-SQL abre, exibindo a instrução SQL que está prestes a ser executada.
Escolha Step Into por executar a instrução e retornar para a função.
Pressione Continue novamente, e observe a segunda janela Dynamic T-SQL que abre, mostrando o código que retorna o valor da função.
Pressione Continue novamente para concluir a depuração da função.
Exemplo
Isso é o código necessário para criar a função.
using System;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)]
public static int OrderCount()
{
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT 42";
//cmd = new SqlCommand("SELECT 42",conn);
int result = (int)cmd.ExecuteScalar();
return result;
}
}
};
Este é o script de teste que chama a função.
SELECT dbo.OrderCount()
Consulte também
Tarefas
Como: Criar e executar um CLR SQL Server usuário-definido de função