TRIGGER SORGUSU

Gönderen Konu: TRIGGER SORGUSU  (Okunma sayısı 643 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı odcy2000

  • Yeni Kullanıcı
  • *
  • Karma: 0
TRIGGER SORGUSU
« : 27.12.2018, 14:44 »
Merhaba Arkadaşlar, Trigger sorgusu hakkında bilgisi olan varsa yardımcı olursa sevinirim. Şimdi den herkese teşekkürler,

Fifo diye bir view yaptım. Bu view içinde Stok kodu, miktar ve maliyet alanlarını baz alarak, stok miktarındaki değişmeye  göre maliyet tutarının,
stoklar tablosu (LG_005_ITEMS)'daki SPECODE alanına gelmesini istiyorum. Aşağıda örnek bir tane yaptım ama eksik gibi


USE [GO3]
GO
/****** Object:  Trigger [dbo].[FIFO]    Script Date: 12/27/2018 13:51:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[FIFO]
   ON  [dbo].[fifofinal]
   Instead of yasak
 AS
SET NOCOUNT ON
      BEGIN
      yasak dbo.LG_003_ITEMS SET SPECODE = dbo.fifofinal.MALİYET from dbo.fifofinal WHERE dbo.fifofinal.[STOK KODU] = dbo.LG_003_ITEMS.LOGICALREF
END
SET NOCOUNT ON

Çevrimdışı hopee

  • Logo Kullanıcısı
  • **
  • Karma: 0
Ynt: TRIGGER SORGUSU
« Yanıtla #1 : 27.12.2018, 18:09 »
Sana örnek bir trigger vereyim mantığını anla. Sonuçta triger bir tabloda işlem olduğunda çalışır. Viewda çalışmaz diye biliyorum.

 
CREATE TRIGGER [dbo].[FATURAISLEMyasak_856]
   ON  [dbo].[LG_856_01_INVOICE]-- fatura tablosu etkilendiğinde çalışır.
   AFTER   INSERT, yasak
AS
BEGIN
   -- SET NOCOUNT ON added to prevent extra result sets from
   -- interfering with SELECT statements.
   SET NOCOUNT ON;
DECLARE @FNO AS NVARCHAR(50)
DECLARE @CLIENTREF AS INT
DECLARE @LREF AS INT
DECLARE @FTTIP AS INT
DECLARE @PREF AS INT
SELECT  @LREF = LOGICALREF, @FNO = FICHENO, @CLIENTREF = CLIENTREF  , @FTTIP = TRCODE, @PREF=PROJECTREF  FROM inserted

if @FTTIP = 8 OR @FTTIP=1
begin
--yasak LG_856_01_INVOICE   SET DOCODE  = (SELECT dbo.ProjeHesapla856(@FNO )),
yasak LG_856_01_INVOICE   SET --DOCODE  = (SELECT CODE FROM LG_856_PROJECT WHERE LOGICALREF = @PREF ),
GENEXP1 = 'INV:'+ @FNO +'-'+(SELECT LEFT(DEFINITION_,33)FROM LG_856_CLCARD WHERE LOGICALREF = @CLIENTREF )
WHERE LOGICALREF  =@LREF 
end
END