MSSQL'de inserted problemi

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

MSSQL'de inserted problemi

Mesaj gönderen ahmet_sinav »

iyi çalışmalar arkadaşlar;
SIRA_NO INT
LNG_ID INT
ACIKLAMA VARCHAR(255)
şeklinde tablom var.
SIRA_NO LNG_ID ACIKLAMA
1 0 DENEME
2 0 DEBEEN2
1 1 DSAKJADSL
2 1 DEKJE
3 1 DSSDADAS
şeklinde kayıtların oluşmasını istiyorum. her yeni LNG_ID'de SIRA_NO'nun
1'den başlamasını istiyorum.
Bunun için aşağıdaki trigger'ı yazdım
CREATE TRIGGER [T_ARAC_KODLARI_AI] ON [dbo].[ARAC_KODLARI]
WITH EXECUTE AS CALLER
FOR INSERT
AS
BEGIN
DECLARE @TOPLAM INT ,@LNG_ID INT

SET @LNG_ID = (Select LNG_ID FROM INSERTED )
SET @TOPLAM = (Select max(SIRA_NO) from ARAC_KODLARI WHERE LNG_ID=@LNG_ID)

UPDATE ARAC_KODLARI SET SIRA_NO = @TOPLAM + 1 where ARAC_KODLARI.SIRA_NO IS
NULL
END
GO
Fakat LNG_ID değerini girmeme rağmen SIRA_NO alanını güncellemiyor ve null değer gönderiyor. Bir önceki kaydın LNG_ID'si ile sonraki kaydın LNG_ID numarası aynı ise trigger doğru çalışıyor.
Saygılar;
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

iyi çalışmlalar;
BEGIN
DECLARE @TOPLAM INT ,@LNG_ID INT,@ATAMA INT
DECLARE @nulval INT

SET @LNG_ID = (Select LNG_ID FROM INSERTED )
SET @TOPLAM = (Select max(SIRA_NO) from ARAC_KODLARI WHERE LNG_ID=@LNG_ID)
SET @ATAMA =(@TOPLAM +1)

UPDATE ARAC_KODLARI SET SIRA_NO = @ATAMA where ARAC_KODLARI.SIRA_NO IS NULL

set @nulval = (Select SIRA_NO from INSERTED)
if (@nulval is null)
UPDATE ARAC_KODLARI SET SIRA_NO = 1 where ARAC_KODLARI.SIRA_NO IS NULL

END
şeklinde yazınca çalıştı .
Saygılar;
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Çözümü paylaştığınız için teşekkürler :)
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

İyi çalışmalar;
buradan anlaşılan o ki
null + 1 = null oluyor
Saygılar;
Cevapla