Partilhar via


Demonstra Passo a passo: Depuração um disparar SQL CLR

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 um disparador CLR SQL.Ele usa o Contato tabela o AdventureWorks banco de dados de exemplo , que é um dos bancos de dados instalados com o SQL Server 2005. O exemplo cria um novo disparador CLR inserir na tabela Contact.

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 disparador CLR SQL:

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

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

  3. Adicionar um script que testa o disparador gerando uma ativação.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 truContact.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. Defina pontos de interrupção no iContact.cs e, em seguida, clicar Iniciar from the Depurar menu para compilar, implantar e unidade de teste do projeto.Quando o ponteiro de instrução, designado por uma seta amarela, aparecer em um ponto de interrupção, você está depurando o disparador.

  5. Experimente recursos de depuração diferentes.

    1. Passe a demonstrativo instanciando o SqlTriggerContext.

    2. Abra a janela Locals.Observe que você pode em em aberto a variável triggContext, que é um SqlTriggerContext, e você pode examinar seus membros. Para obter mais informações, consulte Como: Usar o depurador Variável Windows.

      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.

    3. Escolha Step Into no menu Debug para passar uma linha na stored procedure.Observe que a execução tem instanciado o valor da variável sqlP do tipo SqlPipe.

    4. Abra a janela Watch.arrastar o sqlP variável em qualquer local a Observaçã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 na Observação janela também.

    5. No editor de texto, clique com o botão direito do mouse na linha última e clique em Insert Breakpoint.

    6. No menu Debug, clique Continue e o depurador executará o código até o novo ponto de interrupção.

  6. Clique Continue novamente para concluir a depuração do disparador.Uma mensagem aparece na janela Output informando que o disparador foi depurado com êxito e exibe o resultado da execução dos comandos no arquivo truContact.sql.

Exemplo

Isso é o código necessário para criar o disparador usado neste exemplo.

using System;
using System.Data;
using System.Data.Sql;
using Microsoft.SqlServer.Server;


public partial class Triggers
{
      // Enter existing table or view for the target and uncomment the attribute line.
      [Microsoft.SqlServer.Server.SqlTrigger (Name="Trigger1", Target="primes", Event="FOR UPDATE")]
      public static void Trigger1()
      {
            SqlTriggerContext triggContext = SqlContext.TriggerContext;
            SqlPipe sqlP = SqlContext.Pipe;
            sqlP.Send("primes inserted!");
      }
}

Este é o script de teste que fará com que o disparador seja acionado.

UPDATE Person.Contact SET MiddleName = 'A' WHERE ContactID = 8

Consulte também

Tarefas

Como: Criar e Run a CLR SQL Servidor Disparador

Outros recursos

Depuração de banco de dados SQL CLR