Modificare o rinominare trigger DML
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure
Questo articolo illustra come rinominare un trigger DML in SQL Server usando SQL Server Management Studio o Transact-SQL.
Limiti
Quando si rinomina un trigger, il trigger deve trovarsi nel database corrente e il nuovo nome deve seguire le regole per gli identificatori.
Consigli
Evitare di usare la stored procedure sp_rename per rinominare un trigger. La modifica di una parte del nome di un oggetto potrebbe compromettere il funzionamento di script e stored procedure. La ridenominazione di un trigger non comporta la modifica del nome dell'oggetto corrispondente nella colonna di definizione della vista del catalogo sys.sql_modules. È consigliabile eliminare e ricreare il trigger.
Se si modifica il nome di un oggetto a cui fa riferimento un trigger DML, è necessario modificare il trigger in modo che il testo corrisponda al nuovo nome. Pertanto, prima di rinominare un oggetto, visualizzare le dipendenze dell'oggetto per determinare se la modifica proposta interessa i trigger.
È inoltre possibile rinominare i trigger DML per crittografarne la definizione.
Per visualizzare le dipendenze di un trigger, è possibile utilizzare SQL Server Management Studio o la funzione e viste del catalogo seguenti:
Autorizzazioni
Per modificare un trigger DML è necessaria l'autorizzazione ALTER
sulla tabella o vista in cui è definito il trigger.
Usare SQL Server Management Studio
Modificare un trigger DML
In Esplora oggetti connettersi a un'istanza del motore di database ed espanderla.
Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger da modificare.
Espandere Trigger, fare clic con il pulsante destro del mouse sul trigger da modificare, quindi selezionare Modifica.
Modificare il trigger e fare clic su Esegui.
Rinominare un trigger DML
- Eliminare o disabilitare il trigger DML che si desidera rinominare.
- Creare il nuovo trigger DML, specificando il nuovo nome.
Usare Transact-SQL
Modificare un trigger utilizzando ALTER TRIGGER
Connettersi al motore di database di.
Nella barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella query. Eseguire il primo esempio per creare un trigger DML per la stampa di un messaggio definito dall'utente nel client quando un utente tenta di aggiungere o modificare i dati delle modifiche nella tabella
SalesPersonQuotaHistory
. Eseguire l'istruzione ALTER TRIGGER per modificare il trigger in modo che venga attivato solo con le attivitàINSERT
. Questo trigger risulta molto utile, in quanto ricorda all'utente che aggiorna o inserisce righe nella tabella di inviare una notifica al repartoCompensation
.Creare il trigger.
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
Modificare il trigger.
USE AdventureWorks2022; GO ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); GO
Rinominare un trigger usando DROP TRIGGER e CREATE TRIGGER
Connettersi al motore di database di.
Nella barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. In questo esempio vengono utilizzate le istruzioni DROP TRIGGER e ALTER TRIGGER per rinominare il trigger
Sales.bonus_reminder
inSales.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
Contenuto correlato
- 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)
- Recuperare informazioni sui trigger 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)