Como: Depurar um CLR SQL Stored procedimento

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.

Você pode depurar um existente que SQL procedimento armazenado CLR usando o banco de dados direto de depuração, da mesma forma, que você deve depurar um procedimento T-SQL.No entanto, que não funcionará se você precisar criar ou modificar um procedimento SQL CLR, porque você precisa compilar e implantá-lo.Essas etapas não existem para o procedimento T-SQL.Nesse caso, você precisará criar um projeto SQL servidor em Visual Studio.

A tarefa a seguir cria um novo procedimento SQL CLR armazenado no banco de dados AdventureWorks, um dos bancos de dados instalados com SQL Server 2005e mostra como depurá-lo. Você criar um procedimento armazenado que adiciona uma nova moeda para a tabela Sales.Currency.

Este exemplo concentra-se em depuração dentro de um SQL Server projeto. Depois de criar o procedimento armazenado, você pode depurá-la usando o banco de dados direto de depurar.Para obter mais informações, consulte Como: Depuração an objeto Using Gerenciador de Servidores.

Observação:

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de 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 um SQL procedimento armazenado CLR

  1. Em um novo SQL Server projeto, estabelecer uma conexão com o banco de dados de exemplo AdventureWorks. Para obter mais informações, consulte Como: Conectar-se a um banco de dados.

  2. Crie um novo procedimento armazenado usando o código da primeira seção do exemplo seguinte e denomine InsertCurrency.cs.Para obter mais informações, consulte Como: Desenvolver com o SQL servidor tipo de projeto.

  3. Adicione um script que testa o procedimento armazenado chamando-lo.In O gerenciador de soluções, clicar com o botão direito do mouse o TestScripts diretório, clique em Adicionar script de teste e inserir o código da segunda seção do exemplo a seguir.salvar o arquivo com o nome InsertCurrency.sql.clicar com o botão direito do mouse no nome de arquivo e clique em conjunto sistema autônomo padrão o script de depurar.

  4. conjunto pontos de interrupção em InsertCurrency.cs e, em seguida, sobre o 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 em um ponto de interrupção, você está depurando o procedimento armazenado.

  5. Tente diferentes recursos de depuração.

    1. Abra o Variáveis locais janela e sobre o Depurar menu, clicar Passar dentro para passar uma linha na stored procedimento.Observe que o valor da variável @mynvarchar foi alterado no Variáveis locais janela e seu valor agora é exibido em vermelho, indicando que foi alterado.Para obter mais informações, consulte Usando a janela Variáveis locais.

      Observação:

      O servidor pode não refletir as alterações em valores de variáveis nas janelas do depurador.Para obter mais informações, consulte Limitações depuração SQL.

    2. Abra a janela Watch.No Editor de texto, arrastar the InsertCurrencyCommand para qualquer local na variável de inspeção janela.

      A variável agora é adicionada à lista de variáveis observadas.Para obter mais informações, consulte Como: Usar o depurador Variável Windows.

      Observação:   Você pode edição os valores de variáveis no Observação janela também.

    3. No Editor de texto, clicar com o botão direito do mouse o InsertCurrencyCommand.ExecuteNonQuery linha e, no menu de atalho, clique em Inserir ponto de interrupção.

    4. Sobre o Depurar menu, clicar Continuar e o depurador executará o código até o novo ponto de interrupção.

  6. clicar Continuar novamente para concluir a depuração do procedimento armazenado.

    Uma mensagem aparece no Saída janela informando que o procedimento armazenado foi implantado com êxito e exibe o resultado da execução dos comandos no arquivo InsertCurrency.sql.

Exemplo

Substitua o modelo de procedimento armazenado com esse código.

using System;
using System.Data;
using System.Data.Sql;
using System.Data.SqlServer;
using System.Data.SqlTypes;

public partial class StoredProcedures
{
    [SqlProcedure]
    public static void InsertCurrency(SqlString currencyCode, 
                                               SqlString name)
    {
        using(SqlConnection conn = new SqlConnection("context connection=true")) {
        SqlCommand cmd = new SqlCommand([your SQL statement], conn);
        }
        InsertCurrencyCommand.CommandText = "insert Sales.Currency"
                     + " (CurrencyCode, Name, ModifiedDate) values('" 
                     + currencyCode.ToString() + "', '" 
                     + name.ToString() + "', '" 
                     + DateTime.Now.ToString() + "')";
        InsertCurrencyCommand.ExecuteNonQuery();
    }
}

Este é o script de teste que é usado para executar o procedimento armazenado.

- Delete any row that might exist with a key value
- that matches the one we are going to insert
DELETE Sales.Currency
WHERE CurrencyCode = 'eee'
EXEC InsertCurrency 'eee', 'MyCurr4'
SELECT * FROM Sales.Currency WHERE CurrencyCode = 'eee'

Consulte também

Tarefas

Como: Criar e executar um CLR SQL Servidor procedimento armazenado

Outros recursos

Depuração de banco de dados SQL CLR