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

  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • tutvid

    tutvid

    19 AĞUSTOS 2006