Compartir a través de


Modificar o cambiar el nombre de desencadenadores DML

En este tema se describe cómo modificar o cambiar el nombre de un desencadenador DML en SQL Server 2012 mediante SQL Server Management Studio o Transact-SQL.

En este tema

  • Antes de empezar:

    Limitaciones y restricciones

    Recomendaciones

    Seguridad

  • Para modificar o cambiar el nombre de un desencadenador DML, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de empezar

Limitaciones y restricciones

  • Al cambiar el nombre de un desencadenador, el desencadenador debe estar en la base de datos actual y el nuevo nombre debe seguir las reglas para los identificadores.

Recomendaciones

  • Se recomienda no usar el procedimiento almacenado sp_rename para cambiar el nombre de un desencadenador. Al cambiar cualquier parte del nombre de un objeto se pueden interrumpir scripts y procedimientos almacenados. Al cambiar el nombre de un desencadenador no se cambia el nombre del objeto correspondiente en la columna de definición de la vista de catálogo sys.sql_modules. En su lugar, se recomienda quitar y volver a crear el desencadenador.

  • Si cambia el nombre de un objeto al que hace referencia un desencadenador DML, deberá modificar este último para que el texto refleje el nuevo nombre. Por tanto, antes de cambiar el nombre de un objeto, vea primero las dependencias del mismo para determinar si algún desencadenador va a verse afectado por el cambio propuesto.

  • También es posible modificar un desencadenador DML para cifrar su definición.

  • Para ver las dependencias de un desencadenador, puede usar SQL Server Management Studio o la función y las vistas de catálogo siguientes:

Seguridad

Permisos

Para modificar un desencadenador DML se requiere el permiso ALTER en la tabla o vista en la que se define el desencadenador.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar SQL Server Management Studio

Para modificar un desencadenador DML

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos y expándala.

  2. Expanda la base de datos que desee, expanda Tablas y, a continuación, expanda la tabla que contiene el desencadenador que desea modificar.

  3. Expanda Desencadenadores, haga clic con el botón secundario en el desencadenador que desee modificar y, a continuación, haga clic en Modificar.

  4. Modifique el desencadenador y, a continuación, haga clic en Ejecutar.

Para cambiar el nombre de un desencadenador DML

  1. Elimine el desencadenador cuyo nombre desea cambiar.

  2. Vuelva a crear el desencadenador, especificando el nuevo nombre.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar Transact-SQL

Para modificar un desencadenador mediante ALTER TRIGGER

  1. Conéctese con el Motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue los ejemplos siguientes en la consulta. Ejecute el primer ejemplo para crear un desencadenador DML que muestre al cliente un mensaje definido por el usuario cuando un usuario intente agregar o cambiar los datos de la tabla SalesPersonQuotaHistory. Ejecute la instrucción ALTER TRIGGER para modificar el desencadenador de manera que solo se active en las actividades INSERT. Este desencadenador es útil porque recuerda al usuario que actualiza o inserta filas en esta tabla que debe notificar también al departamento Compensation.

USE AdventureWorks2012;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
    DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE 
AS RAISERROR ('Notify Compensation', 16, 10);
GO

USE AdventureWorks2012;
GO
ALTER TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
AFTER INSERT
AS RAISERROR ('Notify Compensation', 16, 10);
GO

Para cambiar el nombre de un desencadenador mediante DROP TRIGGER y ALTER TRIGGER

  1. Conéctese con el Motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el ejemplo siguiente en la ventana de consulta y haga clic en Ejecutar. En este ejemplo se usan las instrucciones DROP TRIGGER y ALTER TRIGGER para cambiar el nombre del desencadenador Sales.bonus_reminder a Sales.bonus_reminder_2.

USE AdventureWorks2012;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
    DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder_2
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE 
AS RAISERROR ('Notify Compensation', 16, 10);
GO

Icono de flecha usado con el vínculo Volver al principio[Top]

Vea también

Referencia

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_rename (Transact-SQL)

ALTER TRIGGER (Transact-SQL)

sp_help (Transact-SQL)

sp_helptrigger (Transact-SQL)

sys.triggers (Transact-SQL)

sys.trigger_events (Transact-SQL)

sys.sql_modules (Transact-SQL)

sys.assembly_modules (Transact-SQL)

sys.server_triggers (Transact-SQL)

sys.server_trigger_events (Transact-SQL)

sys.server_sql_modules (Transact-SQL)

sys.server_assembly_modules (Transact-SQL)

Conceptos

Obtener información acerca de los desencadenadores DML