Demonstra Passo a passo: Depurando uma função definida pelo usuário T-SQL
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 usa um existente definida pelo usuário função (UDF) chamado ufnGetStock no banco de dados AdventureWorks. Esta função retorna uma contagem de itens em estoque para um determinado CódigoDoProduto.
O exemplo cria um procedimento armazenado que chama o UDF várias vezes.O procedimento armazenado chama o UDF com diferentes parâmetros, portanto, você pode seguir caminhos de execução diferentes por meio do UDF.O exemplo também ilustra saltar de um objeto T-SQL, o procedimento armazenado, para outro, a função.As etapas são semelhantes no Demonstra Passo a passo: Depurar um T-SQL procedimento armazenado.
Você também pode fazer Direct banco de dados Debugging, depuração em função no servidor Explorer.
Para depurar uma função 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 um novo procedimento armazenado usando o código da seção do exemplo abaixo e denomine Test_ufnGetStock.Para obter mais informações, consulte Como: Desenvolver com o SQL servidor tipo de projeto.
conjunto Test_ufnGetStock pontos de interrupção.Isso é opcional, pois Direct banco de dados depuração faz com que a primeira linha do procedimento para atuar sistema autônomo um ponto de interrupção.
conjunto pontos de interrupção no UDF ufnGetStock.
em em aberto o código-fonte para o UDF, clicando com o botão direito do mouse o Funções nó in Gerenciador de servidores, em seguida, clicando duas vezes o ufnGetStock ícone.
clicar com o botão esquerdo do mouse na margem cinza ao lado para o DECLARE demonstrativo para conjunto um ponto de interrupção.
Passar para o procedimento armazenado.Se o procedimento tiver parâmetros, o Executar procedimento armazenadocaixa de diálogo seria exibida, solicitando que seus valores.Nesse caso, os parâmetros são todos embutido em código dentro do procedimento armazenado.Para obter mais informações, consulte Como: Depuração an objeto Using Gerenciador de Servidores.
Experimente recursos de depuração diferentes.
Depurar o código usando a tecla F11 ou o Passar dentro botão.No SELECT demonstrativo, quando você pressionar F11 novamente, você irá passar para o UDF. Percorra o UDF até sair da volta para o procedimento armazenado e continuar.
Você pode observar os caminhos de execução diferente no UDF dependendo dos parâmetros de entrada.Você pode ver os valores de variáveis em UDFs no Variáveis locais janela, ou colocando o cursor sobre eles.
Exemplo
Esse é o código para o procedimento armazenado que chama a função definida pelo usuário.
ALTER PROCEDURE Test_ufnGetStock
AS
SELECT dbo.ufnGetStock(1) as CurrentStock -- non-zero inventory
SELECT dbo.ufnGetStock(316) as CurrentStock -- zero inventory
SELECT dbo.ufnGetStock(5) as CurrentStock -- no such product