Compartilhar via


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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Experimente recursos de depuração diferentes.

    1. Passe a demonstrativo instanciando o SqlCommand usando o Passar dentro from the Depurar menu.

    2. No Variáveis locais janela, abra a variável sqlComm, que é um SqlCommande examine seus membros.

    3. Clique Step Into no menu Debug para passar uma linha na função.Observe que o membro sqlComm.CommandText foi instanciado tem.

    4. No Editor de texto, arrastar sqlComm para qualquer local na inspeção janela.A variável agora é adicionada à lista de variáveis observadas.

    5. 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.

    6. Escolha Step Into por executar a instrução e retornar para a função.

    7. Pressione Continue novamente, e observe a segunda janela Dynamic T-SQL que abre, mostrando o código que retorna o valor da função.

    8. 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

Outros recursos

Depuração de banco de dados SQL CLR