SORU
3 Aralık 2009, PERŞEMBE


Neden NULL = NULL SQL server yanlış değerlendirmesi yapar

Eğer where yan tümcesi nullParam=NULL varsa SQL server, her zaman yanlış olarak değerlendirilir. Bu mantığa aykırı olduğunu ve bana birçok hataları neden oldu. IS NULL IS NOT NULL anahtar bunu yapmak için doğru yol olduğunu anlıyorum. Ama neden SQL server bu şekilde davranıyor?

CEVAP
3 Aralık 2009, PERŞEMBE


Boş olarak "" bu durumda (ya da "yok"). bilinmeyen düşünüyorum Bu durumda, birini ya da bunların değerini bilmiyorsun çünkü eşit olduğunu söylemek, bunu yapamazsın. Eşit olduklarını söylemek değerleri bilmiyorsun çünkü, null=true (false veya null, sisteminize bağlı olarak) sonucunu null. Bu davranış, SQL-92, ANSI Standardı tanımlanmıştır.

EDİT: Bu ansi_nulls senin ayarına bağlıdır. eğer ANSI_NULLS kapalı varsa, bu gerçek olarak değerlendirir. Örneği çalıştırmak için aşağıdaki kodu...

set ansi_nulls off

if null = null
	print 'true'
else
	print 'false'


set ansi_nulls ON

if null = null
	print 'true'
else
	print 'false'

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • MrDevin521

    MrDevin521

    18 Temmuz 2010