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
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.
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.
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.
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.
Tente diferentes recursos de depuração.
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.
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.
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.
Sobre o Depurar menu, clicar Continuar e o depurador executará o código até o novo ponto de interrupção.
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