SORU
28 Ocak 2011, Cuma


T-SQL: UPDATE deyimi bir DURUMDA belirli bir sütun bir koşula bağlı olarak güncelleştirmek için Kullanma.

Eğer bu mümkün olup olmadığını merak ediyorum. X eğer bir koşul ise true, aksi halde sütun y güncelleştirilmiş olur sütunu güncelleştirmek istiyorum

UPDATE table SET
     (CASE (CONDITION) WHEN TRUE THEN columnx
                       ELSE columny
      END)
= 25

Bütün araştırma yapmak zorunda, bazı şeyler denedim ve bir çözüm bulmak için kuramıyorum. Mümkün değil sanırım, ama burada sormak ve eğer biri bu işi daha önce yapmış diye düşündüm. Şimdiden teşekkürler.

CEVAP
28 Ocak 2011, Cuma


Sorgunuzu veri dahil sadece yapısının değişmesi için bir koşul kullanamazsın. Bunu yapmak için:

update table set
    columnx = (case when condition then 25 else columnx end),
    columny = (case when condition then columny else 25 end)

Bu anlamsal olarak aynı ama sadece bunu aklınızın bir köşesine yazınher iki sütun her zaman güncellenecektir. Bumuhtemelensize herhangi bir sorun neden olmaz, ama eğer yüksek bir işlem hacmi varsa, o zaman bu eşzamanlılık sorunlara neden olabilir.

Tek yol yapmaközelliklene sorduğunuzu dinamik SQL kullanmak için. Bu, ancak, uzak kalmak için teşvik etmek isterim. Çözüm yukarıda neredeyse kesinlikle peşinde olduğunuz şey için yeterli olacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • huyked

    huyked

    28 Mart 2008
  • kruno j

    kruno j

    6 Mayıs 2007
  • Moodle

    Moodle

    11 Mayıs 2010