我有權訪問兩個數據庫,它們應該是彼此的副本。在這兩個表上都有一個名爲GROUP
的表,其中列GROUP_INVOICE_NUMBER (varchar(20), not null)
。什麼設置會影響隱式轉換?
在第一個數據庫中,我可以執行:
select *
from GROUP
where GROUP_INVOICE_NUMBER = 4
這excecutes罰款。然而在第二,我得到:
消息245,級別16,狀態1,行轉換 當VARCHAR值「1626CR2」到的數據類型爲int 1個轉換失敗。
我知道這兩個數據庫實例之間必須有區別,而且我猜測它們是關於隱式轉換和/或警告級別的。
你認爲這個區別在哪裏?
注:
我明白這是可怕數據庫設計,但我們一直在亂堆着,我們正在努力提高(因此,我們需要創建一個測試環境)遺留系統我們在哪裏看到這個問題。
我想你誤解了我的問題,無論是列'VARCHAR(20),不null' –
@ m.edmondson,這是什麼有什麼關係呢?你是否嘗試過建議的更改?當列中的數據不能100%轉換爲Int時,不能將其隱式轉換爲int。 – HLGEM
這兩個數據庫_應該是相同的,你是說數據本身是不同的**不是**導致這個問題的數據類型?把單引號放在4上就行,但這不是我要問的問題。 –