Mikro veritabanı üzerinde ihtiyaca göre triger kullanmak.
Microsoft SQL Server'da Mikro veritabanına eklenecek triger'ler sayesinde
bazı işlemleri kolaylaştırabiliriz.
USE
[MikroDB_V14_VERITABANI]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--
=============================================
-- Author : Orhan ÖCAL
-- Create date : 07.12.2011
-- Description : Sipariş
fişinde teslim türü boş geçilememesi için kontrol.
--
=============================================
CREATE TRIGGER [dbo].[SiparisTeslimTuruKontrol]
ON [dbo].[SIPARISLER]
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @sip_teslimturu VARCHAR(25)
set @sip_teslimturu =''
SELECT @sip_teslimturu = sip_teslimturu
FROM inserted
IF @sip_teslimturu = ''
BEGIN
RAISERROR('TESLİM TÜRÜ GİRİLMELİDİR!', 16, 1)
ROLLBACK
RETURN
END
END
GO
USE
[MikroDB_V14_VERITABANI]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--
=============================================
-- Author : Orhan ÖCAL
-- Create date : 07.12.2011
-- Description : CARI_HESAP_HAREKETLERI tablosunda kayıt sonrası Belge No alanına bilgi yazmak.
--
=============================================
ALTER TRIGGER [dbo].[FaturaOnayKontrol]
ON [dbo].[CARI_HESAP_HAREKETLERI]
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @cha_RECno int
SET @cha_RECno = 0
SELECT @cha_RECno = cha_RECno
FROM inserted
WHERE cha_evrak_tip=0 AND cha_cinsi=6 --Toptan fatura
UPDATE dbo.CARI_HESAP_HAREKETLERI
SET cha_belge_no='ONAYLANMADI'
WHERE cha_evrak_tip=0 AND cha_RECno=@cha_RECno
END
2 yorum:
merhaba orhan bey
merhaba
alınan siparişlerde çok uzun teslim tarihleri çok uzun yada teslim tarihleri belirsiz di
ama biz bu belirsizliğin önüne geçmek istiyoruz
örneğin, sipariş fişi açıldığında teslim tarihi bölümüne geldiğinde, (sipariş fişi tarihi baz alınarak) maksimum teslim süresi 120 gün girilebilsin. bu süreden 1 gün fazla girilemesin
şeklinde istiyoruz
bu konuda yardımcı olabilirmisiniz
teşekkürler
huseyin ugraskan
mr.ugraskan@hotmail.com
Merhaba aşağıdaki triger'ı oluşturduğunuzda 120 günden den büyük siparişleri kayıt edilmesine izin vermeyecek.
Not: Mikro program versiyon güncelleme yapmak istediğinizde triger devre dışı olmalı.
CREATE TRIGGER dbo.SiparisTeslimTarihiKontrol
ON dbo.SIPARISLER
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @GunFark int
SELECT @GunFark = DATEDIFF(DAY,sip_tarih,sip_teslim_tarih)
FROM inserted
IF @GunFark > 120
BEGIN
RAISERROR('Teslim tartihi 120 günden fazla olamaz!', 16, 1)
ROLLBACK
RETURN
END
END
GO
Yorum Gönder