2011-09-30 22 views
7

Başlıkta görüldüğü gibi: SQL Server'da örtülü tür dönüşümü kapatmanın bir yolu var mı? Bazı arama insanların bir dizi istediler şey olduğunu gösterecektir olsaSQL Server'da örtülü tür dönüşümü kapatmanın bir yolu var mı?

ben şu basit bir SQL bir hata

SELECT 'a' WHERE 1='1' 
+0

Şunlar dışında iyi soru: neden önemlidir? Onları düşünerek kapsamlı bir on saniyelik bir süre sonra, iki farklı türü karşılaştırmak için _accidentally_ bir örnek düşünemiyorum, ama eğer _deliberately_ iki farklı türü karşılaştırıyorsam, o zaman ben dönüşüm için çok önemliyim. – nnnnnn

+1

sebeplerden. Adını başkalarının arasında: yanlışlıkla karşılaştırma. Verilen bir alandaki bir tablodaki kullanıcı tanımlı bir tipin olması, anahtar olabilecek ve başka bir tabloda yabancı bir tuşa sahip olmanın güzel olacağını düşünüyorum. Bence, iki değeri karşılaştırırken varsayılan değer olmalıdır - Tip tipleri farklıysa: başarısız. – Yodiz

+1

Chris Date'in arkadaşı E. F. Codd'e atıfta bulunduğu Standart SQL'in bir özelliği, "bazen kullanıcının DBMS'den daha fazlasını bileceği" fikri. Ancak Tarih, bunun yanlış bir karar olduğunu düşünüyor: google, tam olarak "[" Codd style domain checks "] [http://www.google.com.tr/search?q=%22Codd-style+domain+checks% 22) Daha fazla bilgi için. – onedaywhen

cevap

10

Devre dışı bırakmanın bir yolu yoktur.

olsa talep edildi: Ancak Erland Sommarskog

gelen teklif edilen SET OPTION STRICT ON MS Bağlan isteği bakın, datatype precedence kurallara

göre tamamen öngörülebilir

yabancı anahtarın Kişisel örneği gerçek nedeni ilginçtir YABANCI ANAHTAR kısıtlaması aynı veri türü, uzunluk ve harmanlamayı gerektirir.

0

SQL server örtük dönüşümleri devre dışı bırakmak yolu yoktur oluşturmak istiyorum .

İlgili konular