Bilindi gibi aynı anda 2 tabloya veri girmek için kullanılan teknolojiye göre kodlamalar var. Bunu sadece sql server kulanarak ta yapmak mümkündür Peki nasıl Triggerlar yardımı ile yani tetikleyici sql procedureleri ile peki bu tekitkleyici procedurler ne işimize yarar. Zaman ve Performans kazanmamız dışına işlem kolaylıgı sağlar. Vb C# veya PHP dilinde aynı anda iki tabloya aynı veri girmek veya bir tablodan diger tabloya veri aktarmek hep sorun olmuştur. Sql server kulanılıyorsa kaynak azlında kulanımı basit fakat ögrenmesi zor olan bir teknoloji.Bunun için kulanıdım tablolar iki tane tablo oluşturdum kendime biri ürün
diyeri ürünkontrol bunlar kodları.
ürüntablosu
CREATE TABLE [ürün]([ID] [int] IDENTITY(1,1) NOT NULL,[Satan_ID] [varchar](100) NULL,[ürün] [varchar] (50) NULL,[tarih] [datetime] NULL,) ON [PRIMARY]GO
ürünkontroltablosu
CREATE TABLE [ürünkontrol]([ID] [int] IDENTITY(1,1) NOT NULL,[Satan_ID] [varchar](100) NULL,[ürün_adi] [varchar] (50) NULL,[ürün_kontrol] [varchar] (50) NULL,[tarih] [datetime] NULL,) ON [PRIMARY]GO
tablolarımı oluşturulduktan soran trigger’ımızıoluşturalım
ben adına yükle koydumALTER TRIGGER Yükle ON ürünAFTER INSERTASBEGINDECLARE @ürünX varchar(50),@tarihX datetime,@ürün_kontrolX varchar(50),@satan_IDXset @ürünX = (SELECT MAX(ürün)From ürün)set @tarihX = (SELECT MAX(tarih)From ürün)set @satan_IDX = (SELECT MAX(Satan_ID)From ürün)set @ürün_kontrolx = ‘Taze olarak geldi’INSERT INTO ürünkontrol (ürün_adi,Satan_ID, ürün_kontrol, tarih) Values (@ürünX,@satan_IDX,@ürün_kontrolx,@tarihX)END
sql kayıt girme
INSERT INTO ürün (Satan_ID,ürün,tarih) VALUES(‘Hıdır’,’elma’,22-12-2009)GO
Trigger’ımızda hazır peki nasıl çalıyor sistem ürünler tablomuza ne kayıt girersek girelim girilen kayıtlar istenilenleri ürünkontrol tablosunada konuyor peki bunun bize sagladığı ne aynı anda iki tablo kulanarak yedek almakta her yapılan kaydın bir yedeğini saklamamızda yardımcı oluyor. Bunu tabi dahada geliştirerek update veye delte komutlarınıda destekledini bilerek daga güçlü sistemlerde oluşturulabilmektedir…