Forum
Merhabalar ,
Haber tablosuna insert işlemi yapılmadan önce güvenlik amacıyla bir alana göndereceğim verinyi kontrol ederek insert yada update işlemini yaptırmak istiyorum. Örneğin ;
INSERT INTO HABER (HABERADI,GUVENLIK) VALUES ('DENEME','KONTROL')
Insert trigger da GUVENLIK alanını kontrol ederek ona göre kayıt yapılmasını sağlamak istiyorum. Yazdığım trigger aşağıdaki gibi :
ALTER TRIGGER [dbo].[TRGHABERINSERT]
ON [dbo].[HABER]
INSTEAD OF INSERT
AS
USE [HABER];
SET NOCOUNT ON;
if (inserted.GUVENLIK = 'KONTROL')
begin
INSERT INTO haber
(
HABERBASLIK,
GUVENLIK
)
VALUES
(
INSERTED.HABERBASLIK,
INSERTED.GUVENLIK
)
end
SET NOCOUNT OFF;
Ancak aldığım hata aşağıdaki gibidir :
Msg 154, Level 15, State 1, Procedure TRGHABERINSERT, Line 5
a USE database statement is not allowed in a procedure, function or trigger.
Yardımcı olursanız sevinirim. İyi çalışmalar.
Merhaba
örnek syntax aşağıdaki gibi fakat önerim bunu trigger ile değilde application level'de yapmanız. Bu tabloya insert işleminden önce bi method ile başka tablo'ya başka işlemleri yazdırıp devamını getirebilirsiniz. Böylece trigger gelen her sorguyu dinleyip ayıt etme zamanından db kurtulur.
Ayrıca trigger deadlock'durumlarını da izole debilirsiniz.