Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Ez a cikk bemutatja, hogyan módosíthatja vagy nevezheti át a DML-eseményindítót az SQL Server Management Studio vagy a Transact-SQL használatával az SQL Serverben.
Korlátozások
Eseményindító átnevezésekor az eseményindítónak az aktuális adatbázisban kell lennie, és az új névnek követnie kell azonosítókszabályait.
Ajánlások
Ne használja a sp_rename tárolt eljárást az eseményindító átnevezéséhez. Az objektumnév bármely részének módosítása megszakíthatja a szkripteket és a tárolt eljárásokat. Az eseményindító átnevezése nem módosítja a megfelelő objektum nevét a sys.sql_modules katalógusnézet definícióoszlopában. Javasoljuk, hogy inkább törölje és hozza létre újra a trigger.
Ha módosítja egy DML-eseményindító által hivatkozott objektum nevét, módosítania kell az eseményindítót, hogy a szöveg tükrözze az új nevet. Ezért mielőtt átnevez egy objektumot, először jelenítse meg az objektum függőségeit annak megállapításához, hogy a javasolt módosítás hatással van-e az eseményindítókra.
A DML-eseményindítók a definíció titkosításához is módosíthatók.
Az eseményindító függőségeinek megtekintéséhez használhatja az SQL Server Management Studiót, vagy az alábbi függvény- és katalógusnézeteket:
Engedélyek
A DML-eseményindító módosításához ALTER engedélyre van szükség azon a táblán vagy nézeten, amelyen az eseményindító definiálva van.
Az SQL Server Management Studio használata
DML-eseményindító módosítása
Az Object Explorer-ben csatlakozzon az adatbázis-motor egy példányához, majd bontsa ki az adott példányt.
Bontsa ki a kívánt adatbázist, bontsa ki Táblák, majd bontsa ki a módosítani kívánt eseményindítót tartalmazó táblát.
Nyissa meg eseményindítók, kattintson jobb gombbal a módosítandó eseményindítóra, majd válassza a Módosítás lehetőséget.
Módosítsa az eseményindítót, majd válassza Végrehajtáslehetőséget.
DML-eseményindító átnevezése
- Az átnevezni kívánt DML-eseményindító törlése vagy letiltása.
- Hozza létre az új DML-eseményindítót, és adja meg az új nevet.
Transact-SQL használata
Eseményindító módosítása az ALTER TRIGGER használatával
Csatlakozzon az adatbázismotorhoz.
A Standard sávon válassza Új lekérdezéslehetőséget.
Másolja és illessze be a következő példát a lekérdezésbe. Hajtsa végre az első példát egy olyan DML-eseményindító létrehozásához, amely egy felhasználó által megadott üzenetet nyomtat ki az ügyfélnek, amikor egy felhasználó adatokat próbál hozzáadni vagy módosítani a
SalesPersonQuotaHistorytáblában. Hajtsa végre a ALTER TRIGGER utasítást a trigger módosításához, hogy az csakINSERTtevékenységekre aktiválódjon. Ez az eseményindító azért hasznos, mert emlékezteti a felhasználót arra, hogy frissíti vagy beszúrja a sorokat ebbe a táblába, hogy aCompensationrészleget is értesítse.Eseményindító létrehozása.
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); GOMódosítsa az eseményindítót.
USE AdventureWorks2022; GO ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); GO
Eseményindító átnevezése DROP TRIGGER és CREATE TRIGGER használatával
Csatlakozzon az adatbázismotorhoz.
A Standard sávon válassza Új lekérdezéslehetőséget.
Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. Ez a példa a DROP TRIGGER és CREATE TRIGGER utasítások használatával nevezi át a
Sales.bonus_remindereseményindítótSales.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
Kapcsolódó tartalom
- LÉTREHOZNI TRIGGERET (Transact-SQL)
- EJTŐ TRIGGER (Transact-SQL)
- TRIGGER AKTIVÁLÁSA (Transact-SQL)
- TRIGGER LETILTÁSA (Transact-SQL)
- ESEMÉNYADATOK (Transact-SQL)
- sp_rename (Transact-SQL)
- ALTER TRIGGER (Transact-SQL)
- Információ szerzése DML-eseményindítókról
- sp_help (Transact-SQL)
- sp_helptrigger (Transact-SQL)
- sys.triggers (Transact-SQL)
- sys.trigger_events (Transact-SQL)
- sys.sql_modulok (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)