• 13-03-2018, 14:27:45
    #1
    Arkadaşlar aşağıdaki kodla ilgili bi sorun var. ama çözemedim. Amacım belirttiğim şartta satır mevcut ise sadece güncellemek değil ise satırı eklemek.
    Şimdiden Teşekkürler...
    NOT: mid PRIMARY KEY Değil.
      IF EXISTS (SELECT * FROM personeller WHERE mid = '300')
    THEN
      UPDATE personeller
      SET sid = 1, lid = 1, tid = 50, pid = 415
      WHERE mid = 300
    ELSE
      INSERT INTO personeller (sid, lid, tid, pid, mid)
      VALUES (1, 1, 50, 415, 300)
  • 13-03-2018, 14:38:36
    #2
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    mid integer ise ' kullanmayın.
    (SELECT * FROM personeller WHERE mid = 300)
    şeklinde yazın hocam.
  • 13-03-2018, 14:41:09
    #3
    tolgasen adlı üyeden alıntı: mesajı görüntüle
    mid integer ise ' kullanmayın.
    (SELECT * FROM personeller WHERE mid = 300)
    şeklinde yazın hocam.
    Bu doğru, performans için. THEN'i silip denemek gerek.
    IF EXISTS (SELECT Id FROM dbo.GroupInfo WHERE Id = @ID)
    UPDATE dbo.GroupInfo
    SET App = @APP , DB = @DB WHERE Id = @ID
    ELSE
    INSERT INTO dbo.GroupInfo ( Id , App , DB )
    VALUES ( @ID , @APP , @DB )
  • 13-03-2018, 15:32:54
    #4
    ozgurcosan adlı üyeden alıntı: mesajı görüntüle
    Bu doğru, performans için. THEN'i silip denemek gerek.
    IF EXISTS (SELECT Id FROM dbo.GroupInfo WHERE Id = @ID)
    UPDATE dbo.GroupInfo
    SET App = @APP , DB = @DB WHERE Id = @ID
    ELSE
    INSERT INTO dbo.GroupInfo ( Id , App , DB )
    VALUES ( @ID , @APP , @DB )
    Denedim. Maalesef Hata Alıyorum.
    Static analysis:
    1 errors were found during analysis.
    1. Unrecognized statement type. (near "IF EXISTS" at position 0)
  • 13-03-2018, 15:37:39
    #5
    driller adlı üyeden alıntı: mesajı görüntüle
    Denedim. Maalesef Hata Alıyorum.
    Static analysis:
    1 errors were found during analysis.
    1. Unrecognized statement type. (near "IF EXISTS" at position 0)
    Son yazdığınız sorguyu ekler misiniz? Arkadaşın dediği gibi tırnak işaretini kaldırdınız değil mi?
  • 13-03-2018, 15:52:39
    #6
    ozgurcosan adlı üyeden alıntı: mesajı görüntüle
    Son yazdığınız sorguyu ekler misiniz? Arkadaşın dediği gibi tırnak işaretini kaldırdınız değil mi?
    Son yaptığım sorgu bu. THEN'i de kaldırıp denemiştim.

      IF EXISTS (SELECT * FROM personeller WHERE mid = 300)
    THEN
      UPDATE personeller
      SET sid = 1, lid = 1, tid = 50, pid = 415
      WHERE mid = 300
    ELSE
      INSERT INTO personeller (sid, lid, tid, pid, mid)
      VALUES (1, 1, 50, 415, 300)
  • 14-03-2018, 19:37:25
    #7
    INSERT INTO .... ON DUPLICATE KEY UPDATE ...
    sorgusu denediniz mi?