Aşağıdaki gibi bir UPDATE Trigger ım var. Fakat çalışmıyor. Yani hiç bir hata vermiyor. Ara ara SubQuery hatası veriyordu artık onuda vermiyor.
yapmak istediğim şey irsaliyede ki kalemler güncellendiğinde stok hareketindeki kaydın da güncellenmesi.
teşekkürler.
Kod: Tümünü seç
SET NOCOUNT ON
DECLARE
@ISLEM NVARCHAR(50),
@YENIMIKTAR FLOAT,
@ESKIMIKTAR FLOAT,
@KODU INT
set @ESKIMIKTAR = (SELECT MIKTAR FROM DELETED)
set @ISLEM = (SELECT ISLEM FROM INSERTED)
set @YENIMIKTAR = (SELECT MIKTAR FROM INSERTED)
set @KODU = (SELECT ID FROM DELETED)
DECLARE DEBUGGER CURSOR DYNAMIC FOR
SELECT * FROM TBLSTOKHAREKET WHERE TBLSTOKHAREKET.FATDID in (@KODU)
OPEN DEBUGGER
WHILE @@FETCH_STATUS <> -1
BEGIN
FETCH NEXT FROM DEBUGGER
if @ISLEM = 'Mal Alış İrsaliyesi'
begin
UPDATE TBLSTOKHAREKET SET
TBLSTOKHAREKET.GIREN = (TBLSTOKHAREKET.GIREN - @ESKIMIKTAR + @YENIMIKTAR)
WHERE CURRENT OF DEBUGGER
FETCH NEXT FROM DEBUGGER
end
Else
if @ISLEM = 'Toptan Satış İrsaliyesi'
Begin
UPDATE TBLSTOKHAREKET SET
TBLSTOKHAREKET.CIKAN = (TBLSTOKHAREKET.CIKAN - @ESKIMIKTAR + @YENIMIKTAR)
WHERE CURRENT OF DEBUGGER
FETCH NEXT FROM DEBUGGER
end
else
if @ISLEM = 'Perakende Satış İrsaliyesi'
Begin
UPDATE TBLSTOKHAREKET SET
TBLSTOKHAREKET.CIKAN = (TBLSTOKHAREKET.CIKAN - @ESKIMIKTAR + @YENIMIKTAR)
WHERE CURRENT OF DEBUGGER
FETCH NEXT FROM DEBUGGER
end
else
if @ISLEM = 'Mal Alış İadesi'
Begin
UPDATE TBLSTOKHAREKET SET
TBLSTOKHAREKET.CIKAN = (TBLSTOKHAREKET.CIKAN - @ESKIMIKTAR + @YENIMIKTAR)
WHERE CURRENT OF DEBUGGER
FETCH NEXT FROM DEBUGGER
end
else
if @ISLEM = 'Toptan Satış İadesi'
Begin
UPDATE TBLSTOKHAREKET SET
TBLSTOKHAREKET.GIREN = (TBLSTOKHAREKET.GIREN - @ESKIMIKTAR + @YENIMIKTAR)
WHERE CURRENT OF DEBUGGER
FETCH NEXT FROM DEBUGGER
end
else
if @ISLEM = 'Perakende Satış İadesi'
Begin
UPDATE TBLSTOKHAREKET SET
TBLSTOKHAREKET.GIREN = (TBLSTOKHAREKET.GIREN - @ESKIMIKTAR + @YENIMIKTAR)
WHERE CURRENT OF DEBUGGER
FETCH NEXT FROM DEBUGGER
end;
END
CLOSE DEBUGGER
DEALLOCATE DEBUGGER