Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase SqlTriggerContext

 

Publicado: octubre de 2016

Proporciona información contextual sobre el desencadenador que se activó.

Espacio de nombres:   Microsoft.SqlServer.Server
Ensamblado:  System.Data (en System.Data.dll)

System.Object
  Microsoft.SqlServer.Server.SqlTriggerContext

public sealed class SqlTriggerContext

NombreDescripción
System_CAPS_pubpropertyColumnCount

Obtiene el número de columnas que contiene la tabla de datos que se enlaza al desencadenador. Esta propiedad es de sólo lectura.

System_CAPS_pubpropertyEventData

Obtiene los datos de evento específicos de la acción que activó el desencadenador.

System_CAPS_pubpropertyTriggerAction

Indica la acción que activó el desencadenador.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodIsUpdatedColumn(Int32)

Devuelve true Si una columna se ve afectada por una instrucción INSERT o UPDATE.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

La información contextual proporcionada incluye el tipo de acción que causó el activador, qué columnas se modificaron en una operación de actualización, y, en el caso de una definición de datos desencadenador DDL (lenguaje), una estructura XML EventData (vea "Referencia de Transact-SQL" en los libros SQL Server en línea) que describe la operación de desencadenamiento.

Una instancia de SqlTriggerContext está disponible en la SqlContext (clase), cuando se ejecuta el código dentro de un desencadenador a través de la TriggerContext propiedad.

El ejemplo siguiente se muestra una SqlTriggerContext del objeto que se utiliza para determinar si un Insert se produjo la acción. Si una fila se insertó en la userde la tabla, el nombre de usuario y el nombre real se recuperan de la fila insertada y, a continuación, se agregan a la UserNameAudit tabla.

[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;
   }
}

.NET Framework
Disponible desde 2.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: