Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo modificar o cambiar el nombre de un desencadenador DML en SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL.
En este tema
Antes de comenzar:
Para modificar o cambiar el nombre de un desencadenador DML mediante:
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 de 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. Cambiar el nombre de un desencadenador no cambia el nombre del nombre de objeto correspondiente en la columna de definición de la vista de catálogo sys.sql_modules . Se recomienda quitar y volver a crear el desencadenador en su lugar.
Si cambia el nombre de un objeto al que hace referencia un desencadenador DML, debe modificar el desencadenador para que su texto refleje el nuevo nombre. Por lo tanto, antes de cambiar el nombre de un objeto, muestre primero las dependencias del objeto para determinar si los desencadenadores se ven afectados por el cambio propuesto.
Un desencadenador DML también se puede modificar para cifrar su definición.
Para ver las dependencias de un desencadenador, puede usar SQL Server Management Studio o las siguientes vistas de función y catálogo:
Seguridad
Permisos
Para modificar un desencadenador DML, es necesario el permiso ALTER en la tabla o vista en la que se define el desencadenador.
Uso de SQL Server Management Studio
Para modificar un desencadenador DML
En el Explorador de objetos, conéctese a una instancia del motor de base de datos y expanda esa instancia.
Expanda la base de datos que desee, expanda Tablas y, a continuación, expanda la tabla que contiene el desencadenador que desea modificar.
Expanda Desencadenadores, haga clic con el botón derecho en el desencadenador que desea modificar y, a continuación, haga clic en Modificar.
Modifique el desencadenador y, a continuación, haga clic en Ejecutar.
Para cambiar el nombre de un desencadenador DML
Elimine el desencadenador al que desea cambiar el nombre.
Vuelva a crear el desencadenador y especifique el nuevo nombre.
Uso de Transact-SQL
Para modificar un desencadenador mediante ALTER TRIGGER
Conéctese al motor de base de datos.
En la barra Estándar, haga clic en Nueva consulta.
Copie y pegue los ejemplos siguientes en la consulta. Ejecute el primer ejemplo para crear un desencadenador DML que imprima un mensaje definido por el usuario al cliente cuando un usuario intenta agregar o cambiar datos en la
SalesPersonQuotaHistorytabla. Ejecute la instrucción ALTER TRIGGER para modificar el desencadenador para que se active solo enINSERTlas actividades. Este desencadenador es útil porque recuerda al usuario que actualiza o inserta filas en esta tabla para notificar también alCompensationdepartamento.
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
Conéctese al motor de base de datos.
En la barra Estándar, haga clic en Nueva consulta.
Copie y pegue el siguiente ejemplo 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
Sales.bonus_reminderdesencadenador aSales.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
Véase también
CREATE TRIGGER (Transact-SQL)
Desactivar el disparador (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_rename (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
Obtener información sobre los desencadenadores DML
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)