SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE CAHAR_KONTROL(@KOD VARCHAR(15))
AS
BEGIN
IF @KOD<>''
UPDATE musteri
SET borcu =
(SELECT ISNULL(SUM(BORC),0) FROM hareket WHERE hareket.kod = musteri.kod),
alacakı =
(SELECT ISNULL(SUM(ALACAK),0) FROM hareket WHERE hareket.kod = musteri.kod)
WHERE musteri.kod = @kod
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
yukarıda ki procedure ile @kod değişkenine verdiğimiz cari kodu na ait toplam borç alacak güncelleme işlemini yapıyorum. yani :
ile 1 nolu carinin toplam borç alacak bilgilerini guncelliyoruz. şimdi yapmak istediğim , bir dongü kurup tek tek tüm cariler için bu işle yapmak. bunu delphi de kolayca yapıyorum ama bunu yine SQL Server a yaptırmak istersek nasıl bir query yazmalıyım.
CREATE PROCEDURE CAHAR_KONTROL(@KOD VARCHAR(15))
AS
BEGIN
IF @KOD<>''
UPDATE musteri
SET borcu =
(SELECT ISNULL(SUM(BORC),0) FROM hareket WHERE hareket.kod = musteri.kod),
alacakı =
(SELECT ISNULL(SUM(ALACAK),0) FROM hareket WHERE hareket.kod = musteri.kod)
WHERE musteri.kod = @kod
ELSE
UPDATE musteri
SET borcu =
(SELECT ISNULL(SUM(BORC),0) FROM hareket WHERE hareket.kod = musteri.kod),
alacakı =
(SELECT ISNULL(SUM(ALACAK),0) FROM hareket WHERE hareket.kod = musteri.kod)
END
Eğer tümü için yapmak istediğiniz de @kod değişkenine '' verirsiniz. Bunu null veya -1 için de yapabilirsiniz tabi. Sadece bir kayıt için yapmak istediğinizde de ilgili @kod değerini verirsiniz.
Evet kesinlikle uzaktan bakmak daha faklı oluyor.. Eğer procedürü iki amaçla değil de sadece bütün kayıtlar için kullnacaksanız ozaman @kod a ihtiyaç yok tabiki