7 Temmuz 2015 Salı

Netsis TBLSERITRA ve TBLSTHAR Bağlantısı Hakkında

Netsis Programı SQL Server 2008 R2  veritabanında serili stok hareketlerinin  kayıt altına alındığı 2 tablo bulunmakta bunlar TBLSTHAR ve TBLSERITRA tabloları olup TBLSTHAR INCKEYNO TBLSERITRA ise STRA_INC Primary keyleri ile birbirine bağlı olmak zorunda yani 1 adet stok hareketinin karşılığı 1 seri demek oluyor.Stok yaşlandırma'da bulunan eksi bakiye sorununu çözmek için yedek şirkette devir ile gelen eksi bakiyeyi TBLSTHAR ve TBLSERITRA tablosundan Delete komutu ile sildiğimde yaşlandırma raporundaki eksi bakiye sorunu ortadan kalkmış oldu.Bu sefer tam tersi düşünerek sildiğim bu kayıtları yeniden eski yerlerine almak istedim.Farklı bir yedekten SERITRA tablosundaki kaydı sorunsuz eski yerine taşıdım diğer kaydı TBLSTHAR tablosuna taşımak istediğimde ise INCKEYNO identity değeri aldığı için hata verdi.Böyle durumlarda aslında identity seçeneği tablo dizaynından iptal edilebilir ama üretim veritabanlarında böyle bir durum risk oluşturacağı için yedekteki ilgili kaydı INSERT INTO komutu ile TBLSTHAR tablosuna INCKEYNO değerini yazmadan ekledim böylece sorunsuz olarak hem doğru kayıtlar eklendi hemde INCKEYNO  otomatik olarak yeni değer aldı.TBLSTHAR tablosunda bulunan yeni INCKEYNO değerini TBLSERITRA tablosunda bulunan STRA_INC alanına eşitlemek için ise TBLSERITRA tablosundaki eski STRA_INC değerini TBLSTHAR tablosundaki ilgili hareketin aldığı yeni INCKEYNO değerine UPDATE komutu ile ekleyerek her iki tablodaki INCKEYNO ve STRA_INC alanları stok hareketi ve seri kaydı olarak birbirine sorunsuz bağlanmış oldu.