SQL Server 2005 tetik - UPDATE ateş veya DELETE olmadığını nasıl güvenle belirlemek için?

oy
0

Ben bir SQL Server 2005 tetikleyici aşağıdaki kodu vardır:

CREATE TRIGGER [MyTrigger] AÇIK [myTable]
UPDATE, DELETE
GİBİ
BAŞLA

BEYAN @OperationType VARCHAR (6)
VARSA (ED YOKSAY INSERT GELEN 1 SEÇ)
BAŞLA
    SET @ OperationType = 'Güncelleme'
SON
BAŞKA
BAŞLA
    SET @ OperationType = 'Sil'
SON

Sorum: @OperationType doğru değil doldurulur olduğu bir durum var mı? EG: Tablodaki veriler / ifadeler DELETE UPDATE bir grup tarafından değiştirildi, ancak tetik bunlardan her biri tarafından bir kez ateş edilmez?

Eğer deyimi tetikleyici UPDATE ateş edildi olmadığını belirlemek veya DELETE için daha iyi bir yol var mı?

Oluştur 09/12/2008 saat 16:53
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
4

Neden sadece iki ayrı tetikler oluşturmaz?

CREATE TRIGGER [myUpdateTrigger] ON [myTable]
FOR UPDATE
AS
BEGIN

END

CREATE TRIGGER [myDeleteTrigger] ON [myTable]
FOR DELETE
AS
BEGIN

END
Cevap 09/12/2008 saat 17:00
kaynak kullanıcı

oy
3

Cevap basit: Hayır, (hayır değiştirilen satır olduğunda hariç) tetik doğru algılamak için başarısız olduğu bir durum olmayacaktır.

Tetik her açıklamada bir kez ateş açılacak, böylece şey mümkün değildir ve doğru çalışacaktır ancak nokta gerçekten farklı görevleri yapmak istiyorsanız olduğunu UPDATEve DELETEdaha iyi bir çift tetikler kullanmayı tercih ediyorum.

Cevap 09/12/2008 saat 17:02
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more