Modifier ou renommer les déclencheurs DML
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Cet article décrit comment modifier ou renommer un déclencheur DML dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL.
Limites
Lorsque vous renommez un déclencheur, celui-ci doit se trouver dans la base de données actuelle et le nouveau nom doit respecter les règles applicables aux identificateurs.
Recommandations
Évitez d’utiliser la procédure stockée sp_rename pour renommer un déclencheur. La modification d'une partie du nom de l'objet peut provoquer des problèmes dans des scripts et des procédures stockées. Le fait de renommer un déclencheur ne modifie pas le nom de l’objet correspondant dans la colonne de définition de l’affichage catalogue sys.sql_modules. Nous vous recommandons plutôt de supprimer et de recréer le déclencheur.
Si vous changez le nom d'un objet référencé par un déclencheur DML, vous devez modifier le déclencheur pour que sa définition se réfère au nouveau nom de l'objet. Par conséquent, avant de renommer un objet, affichez les dépendances de l'objet pour savoir si des déclencheurs sont concernés par la modification proposée.
Un déclencheur DML peut aussi être modifié pour en chiffrer la définition.
Pour afficher les dépendances d'un déclencheur, vous pouvez utiliser SQL Server Management Studio ou la fonction et les affichages catalogue suivants :
autorisations
La modification d'un déclencheur DML nécessite une autorisation ALTER
sur la table ou la vue sur laquelle le déclencheur est défini.
Utiliser SQL Server Management Studio
Modifier un déclencheur DML
Dans l’Explorateur d’objets, connectez-vous à une instance du moteur de base de données et développez-la.
Développez la base de données choisie, développez Tables, puis développez la table qui contient le déclencheur que vous souhaitez modifier.
Développez Déclencheurs, cliquez avec le bouton droit sur le déclencheur à modifier, puis sélectionnez Modifier.
Modifiez le déclencheur, puis sélectionnez Exécuter.
Renommer un déclencheur DML
- Supprimez ou désactivez le déclencheur DML que vous souhaitez renommer.
- Créez le nouveau déclencheur DML en spécifiant un nouveau nom.
Utiliser Transact-SQL
Modifier un déclencheur à l'aide de ALTER TRIGGER
Connectez-vous au Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l'exemple suivant dans la requête. Exécutez le premier exemple pour créer un déclencheur DML qui envoie un message défini par l'utilisateur au client lorsqu'un utilisateur tente d'ajouter ou de modifier les données de la table
SalesPersonQuotaHistory
. Exécutez l'instruction ALTER TRIGGER pour modifier le déclencheur afin qu'il s'active uniquement sur des activitésINSERT
. Ce déclencheur est utile car il rappelle à l'utilisateur qui met à jour ou insère des lignes dans cette table de notifier également le départementCompensation
.Créez un déclencheur.
USE AdventureWorks2022; 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
Modifiez le déclencheur.
USE AdventureWorks2022; GO ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); GO
Renommer un déclencheur à l'aide de DROP TRIGGER et ALTER TRIGGER
Connectez-vous au Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter. Cet exemple utilise les instructions DROP TRIGGER et CREATE TRIGGER pour renommer le déclencheur
Sales.bonus_reminder
enSales.bonus_reminder_2
.
USE AdventureWorks2022;
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
Contenu connexe
- 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)
- Obtenir des informations sur les déclencheurs 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)