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 ile Transact-SQL Veri İşleme Dili (DML) tetikleyicisinin veya Transact-SQL CREATE TRIGGER deyiminin nasıl oluşturulacağı açıklanır.
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
Sınırlamalar
DML tetikleyicileri oluşturmayla ilgili sınırlamaların ve kısıtlamaların listesi için bkz. CREATE TRIGGER.
İzinler
ALTER Tetikleyicinin oluşturulduğu tabloda veya görünümde izin gerektirir.
DML tetikleyicisi oluşturma
Aşağıdaki yöntemlerden birini kullanabilirsiniz:
- SQL Server Management Studio
- Transact-SQL
SQL Server Management Studio'yu kullanma
Nesne Gezginiveritabanı altyapısının bir örneğine bağlanın ve bu örneği genişletin.
Veritabanları'nı
AdventureWorks2025genişletin, veritabanını genişletin, Tablolar'ı genişletin ve sonra tabloyuPurchasing.PurchaseOrderHeadergenişletin.Tetikleyicileri'ne sağ tıklayın ve yeni tetikleyici seçin.
Sorgu menüsünde Şablon Parametreleri için Değer Belirt'i seçin. Alternatif olarak, (Ctrl-Shift-M) tuşlarına basarak şablon parametreleri için değerleri belirtin iletişim kutusunu açabilirsiniz.
Şablon Parametreleri için Değerleri Belirt iletişim kutusunda, gösterilen parametreler için aşağıdaki değerleri girin.
Parametre Değer Yazar Adınız Tarih Oluştur bugünün tarihi Açıklama Satıcıya yeni bir satınalma siparişi eklenmesine izin vermeden önce satıcının kredi derecelendirmesini denetler. Schema_Name PurchasingTrigger_Name NewPODetail2Table_Name PurchaseOrderDetailData_Modification_Statement Listeden ve UPDATEöğesini kaldırınDELETE.Tamam'ı seçin.
Sorgu Düzenleyicisi'de, açıklama
-- Insert statements for trigger here'yi aşağıdaki ifade ile değiştir:IF @@ROWCOUNT = 1 BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + LineTotal FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID; END ELSE BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + (SELECT SUM(LineTotal) FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID) WHERE PurchaseOrderHeader.PurchaseOrderID IN (SELECT PurchaseOrderID FROM inserted); END;Söz diziminin geçerli olduğunu doğrulamak için Sorgu menüsünde Ayrıştır'ı seçin. Hata iletisi döndürülürse deyimini önceki kod bloğuyla karşılaştırın, gerektiği gibi düzeltin ve bu adımı yineleyin.
DML tetikleyicisini oluşturmak için Sorgu menüsünde Yürüt'e tıklayın. DML tetikleyicisi veritabanında bir nesne olarak oluşturulur.
Nesne Gezgini'nde listelenen DML tetikleyicisini görmek için Tetikleyiciler öğesine sağ tıklayın ve "Yenile"seçeneğini seçin.
Transact-SQL kullanma
Nesne Gezginiveritabanı altyapısının bir örneğine bağlanın ve bu örneği genişletin.
Dosyamenüsünden Yeni Sorgu'yu seçin.
Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Yürüt'e tıklayın. Bu örnek, öncekiyle aynı depolanmış DML tetikleyicisini oluşturur. Tetikleyici çok satırlı ve tek satırlı eklemeler için geçerlidir ve tek satır eklemeleri için en uygun değerdir.
USE AdventureWorks2022; GO CREATE TRIGGER NewPODetail3 ON Purchasing.PurchaseOrderDetail FOR INSERT AS IF @@ROWCOUNT = 1 BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + LineTotal FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID; END ELSE BEGIN UPDATE Purchasing.PurchaseOrderHeader SET SubTotal = SubTotal + (SELECT SUM(LineTotal) FROM inserted WHERE PurchaseOrderHeader.PurchaseOrderID = inserted.PurchaseOrderID) WHERE PurchaseOrderHeader.PurchaseOrderID IN (SELECT PurchaseOrderID FROM inserted); END;