Compartilhar via


SqlTriggerContext Classe

Definição

Fornece informações contextuais sobre o gatilho que foi disparado.

public ref class SqlTriggerContext sealed
public sealed class SqlTriggerContext
type SqlTriggerContext = class
Public NotInheritable Class SqlTriggerContext
Herança
SqlTriggerContext

Exemplos

O exemplo a seguir mostra um SqlTriggerContext objeto sendo usado para determinar se ocorreu uma Insert ação. Se uma linha tiver sido inserida na usertabela do , o nome de usuário e o nome real serão recuperados da linha inserida e adicionados à tabela UserNameAudit .

[SqlTrigger(Name = @"UsersAudit", Target = "[dbo].[users]", Event = "FOR INSERT")]
public static void UsersAudit()
{
   // Get the trigger context.
   string userName;
   string realName;
   SqlCommand command;
   SqlTriggerContext triggContext = SqlContext.TriggerContext;
   SqlDataReader reader;

   switch (triggContext.TriggerAction)
   {
      case TriggerAction.Insert:

      // Retrieve the connection that the trigger is using.
      using (SqlConnection connection
         = new SqlConnection(@"context connection=true"))
      {
         connection.Open();

         // Get the inserted row.
         command = new SqlCommand(@"SELECT * FROM INSERTED;",
                                  connection);

         // Get the user name and real name of the inserted user.
         reader = command.ExecuteReader();
         reader.Read();
         userName = (string)reader[0];
         realName = (string)reader[1];
         reader.Close();

         // Insert the user name and real name into the auditing table.
         command = new SqlCommand(@"INSERT [dbo].[UserNameAudit] (userName, realName) "
                  + @"VALUES (@userName, @realName);", connection);

         command.Parameters.Add(new SqlParameter("@userName", userName));
         command.Parameters.Add(new SqlParameter("@realName", realName));

         command.ExecuteNonQuery();
      }

      break;
   }
}
<SqlTrigger(Name:="UsersAudit", Target:="[dbo].[users]", Event:="FOR INSERT")> _
Public Shared Sub UsersAudit()
        
   Dim command As SqlCommand
   Dim triggContext As SqlTriggerContext
   Dim reader As SqlDataReader
   Dim userName As String
   Dim realName As String

         
   ' Get the trigger context.
   triggContext = SqlContext.TriggerContext        

   Select Case triggContext.TriggerAction
           
      Case TriggerAction.Insert

         ' Retrieve the connection that the trigger is using.
         Using connection As New SqlConnection("context connection=true")
            connection.Open()

            ' Get the inserted row.
            command = new SqlCommand("SELECT * FROM INSERTED;", connection)
            
            ' Get the user name and real name of the inserted user.                
            reader = command.ExecuteReader()
            reader.Read()
            userName = CType(reader(0), String)
            realName = CType(reader(1), String)

            reader.Close()

            ' Insert the user name and real name into the auditing table.
            command = New SqlCommand("INSERT [dbo].[UserNameAudit] (userName, realName) " & _
               "VALUES (@userName, @realName);", connection)

            command.Parameters.Add(new SqlParameter("@userName", userName))
            command.Parameters.Add(new SqlParameter("@realName", realName))
                 
            command.ExecuteNonQuery()
                 
          End Using
         
   End Select

End Sub

Comentários

As informações contextuais fornecidas incluem o tipo de ação que fez com que o gatilho fosse acionado, quais colunas foram modificadas em uma operação UPDATE e, no caso de um gatilho DDL (linguagem de definição de dados), uma estrutura EventData XML (consulte Referência do Transact-SQL) que descreve a operação de disparo.

Uma instância de SqlTriggerContext está disponível na SqlContext classe , quando o código está em execução dentro de um gatilho por meio da TriggerContext propriedade .

Propriedades

ColumnCount

Obtém o número de colunas contidas na tabela de dados associada ao gatilho. Esta propriedade é somente para leitura.

EventData

Obtém os dados de evento específicos para a ação que acionou o gatilho.

TriggerAction

Indica qual ação que acionou o gatilho.

Métodos

IsUpdatedColumn(Int32)

Retorna true se uma coluna foi afetada por uma instrução INSERT ou UPDATE.

Aplica-se a