Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Bu makalede, SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'da DML tetikleyicisini değiştirme veya yeniden adlandırma açıklanmaktadır.
Sınırlama
Tetikleyiciyi yeniden adlandırdığınızda, tetikleyici geçerli veritabanında olmalı ve yeni ad tanımlayıcıları için kurallara uymalıdır.
Öneri
Tetikleyiciyi yeniden adlandırmak için sp_rename saklı yordamı kullanmaktan kaçının. Nesne adının herhangi bir bölümünü değiştirmek betikleri ve saklı yordamları bozabilir. Tetikleyicinin yeniden adlandırılması, sys.sql_modules katalog görünümünün tanım sütununda karşılık gelen nesne adının adını değiştirmez. Bunun yerine tetikleyiciyi bırakmanızı ve yeniden oluşturmanızı öneririz.
DML tetikleyicisi tarafından başvuruda bulunan bir nesnenin adını değiştirirseniz, tetikleyiciyi metni yeni adı yansıtabilecek şekilde değiştirmeniz gerekir. Bu nedenle, bir nesneyi yeniden adlandırmadan önce, önerilen değişikliğin tetikleyicileri etkileyip etkilemediğini belirlemek için önce nesnenin bağımlılıklarını görüntüleyin.
DML tetikleyicisi, tanımını şifrelemek için de değiştirilebilir.
Tetikleyicinin bağımlılıklarını görüntülemek için SQL Server Management Studio'yu veya aşağıdaki işlev ve katalog görünümlerini kullanabilirsiniz:
İzinler
DML tetikleyicisini değiştirmek için, tetikleyicinin tanımlandığı tabloda veya görünümde ALTER izni gerekir.
SQL Server Management Studio kullanma
DML tetikleyicisini değiştirme
Nesne Gezginiveritabanı altyapısının bir örneğine bağlanın ve bu örneği genişletin.
İstediğiniz veritabanını genişletin, ardından tablolara genişletin ve değiştirmek istediğiniz tetikleyiciyi içeren tabloyu genişletin.
Tetikleyicileri'ni genişletin, değiştirmek için tetikleyiciye sağ tıklayın ve Değiştiröğesini seçin.
Tetikleyiciyi değiştirin ve ardından Çalıştırseçin.
DML tetikleyicisi yeniden adlandırma
- Yeniden adlandırmak istediğiniz DML tetikleyicisini silin veya devre dışı bırakın.
- yeni adı belirterekyeni DML tetikleyicisini oluşturun.
Transact-SQL kullanma
ALTER TRIGGER kullanarak tetikleyiciyi değiştirme
Veritabanı Altyapısı'na bağlanın.
Standart çubuğundan Yeni Sorguöğesini seçin.
Aşağıdaki örneği kopyalayıp sorguya yapıştırın. kullanıcı
SalesPersonQuotaHistorytablosuna veri eklemeye veya değiştirmeye çalıştığında istemciye kullanıcı tanımlı bir ileti yazdıran bir DML tetikleyicisi oluşturmak için ilk örneği yürütür. ALTER TRIGGER deyimini yürütüp tetikleyiciyi yalnızcaINSERTetkinliklerinde çalışacak şekilde değiştirin. Bu tetikleyici, kullanıcıyaCompensationbölümünü de bilgilendirmek için bu tabloya satır güncelleştirdiğini veya eklediğini anımsattığı için yararlıdır.Tetikleyici oluşturma.
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); GOTetikleyiciyi değiştirin.
USE AdventureWorks2022; GO ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); GO
DROP TRIGGER ve CREATE TRIGGER kullanarak tetikleyiciyi yeniden adlandırma
Veritabanı Altyapısı'na bağlanın.
Standart çubuğundan Yeni Sorguöğesini seçin.
Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Executeöğesini seçin. Bu örnekte, tetikleyicisini olarak yeniden adlandırmak için
Sales.bonus_reminderveSales.bonus_reminder_2deyimleri kullanılır.
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
İlgili içerik
- TETİKLEYİCİ OLUŞTUR (Transact-SQL)
- TRİGER DÜŞÜR (Transact-SQL)
- TETİKLEYİCİYİ ETKİNLEŞTİR (Transact-SQL)
- TETİKLEMİYİ DEVRE DIŞI BIRAK (Transact-SQL)
- OLAY VERILERI (Transact-SQL)
- sp_rename (Transact-SQL)
- ALTER TRIGGER (Transact-SQL)
- DML Tetikleyicileri Hakkında Bilgi Alma
- sp_help (Transact-SQL)
- sp_helptrigger (Transact-SQL)
- sys.triggers (Transact-SQL)
- sys.trigger_events (Transact-SQL)
- sys.sql_modüller (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)