--STOKKARTLARI ÇİFT KAYIT KONTROLÜ- kodu ve Barkodu kontrol eder. SELECT Kodu,COUNT(Kodu) AS CIFTKAYITLAR FROM STOKKARTI GROUP BY Kodu HAVING ( COUNT(Kodu) > 1 ) SELECT Kodu,COUNT(Kodu) AS CIFTKAYITLAR FROM StokFiyat GROUP BY Kodu HAVING ( COUNT(Kodu) > 1 ) SELECT Barkodu,COUNT(Barkodu) AS CIFTKAYITLAR FROM STOKKARTI GROUP BY Barkodu HAVING ( COUNT(Barkodu) > 1 ) --ÇİFT KAYIT STOKKARTLARI LİSTESİNİ VERİR. select * from STOKKARTI SK1 WHERE Kodu in (SELECT Kodu FROM STOKKARTI group by Kodu having count(Kodu)>1) AND NoId =(SELECT MIN(NoId) FROM STOKKARTI SK3 where SK3.Kodu=SK1.Kodu) select * from STOKKARTI SK1 WHERE Kodu in (SELECT Kodu FROM STOKKARTI group by Kodu having count(Kodu)>1) --ÇİFT KAYIT STOKKARTLARINDAN İLK AÇILANLARI SİLER. EN SON KAYIT KALIR. DELETE from STOKKARTI WHERE Kodu in (SELECT Kodu FROM STOKKARTI group by Kodu having count(Kodu)>1) AND NoId <>(SELECT max(NoId) FROM STOKKARTI SK3 where SK3.Kodu=STOKKARTI.Kodu) ---STOKKARTI VE STOK YAPISINI KODU MÜKERRER KAYITTAN KURTARMAK İÇİN UNIQUE YAPALI. ALTER TABLE STOKKARTI ADD CONSTRAINT STK_KOD UNIQUE (Kodu) ALTER TABLE StokFiyat ADD CONSTRAINT STKFyt_KOD UNIQUE (Kodu) ---HAREKETİ OLAN KARTI SİLDİRMEMEK CREATE TRIGGER [dbo].[TR_SN_STK_STH_KONTROL] ON [dbo].[STOKKARTI] AFTER DELETE AS BEGIN DECLARE @Kodu varchar (50) SELECT @Kodu= Kodu FROM DELETED IF EXISTS(SELECT * FROM STOKHAR WHERE StokKodu=@Kodu) BEGIN Print 'Ürün Hareketlerde mevcut, silinenmez' ROLLBACK TRANSACTION RETURN END else DELETE FROM StokFiyat where Kodu=@Kodu delete from StokDB where StokKodu=@Kodu END