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

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • DrePwn

    DrePwn

    22 Temmuz 2011
  • Showtime

    Showtime

    21 HAZİRAN 2006