我有開始沒有這個遺留代碼...轉換nvarchar值'7575932'時轉換失敗。數據類型爲int
UPDATE B2C
SET B2C.dborderid = A.order_number__c
FROM b2csf B2C
JOIN Alemania A ON B2C.actualid = A.salesforce_id
我得到這個錯誤:
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '7201799-' to data type int.
我繼續將其改爲:
UPDATE B2C
SET B2C.dborderid = (CASE
WHEN Isnumeric (a.order_number__c) = 1
THEN CAST(a.order_number__c AS INT)
END)
FROM b2csf B2C
JOIN Alemania A ON B2C.actualid = A.salesforce_id
而且現在我得到
個Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '7575932.' to data type int.
我的問題現在:
我怎樣才能避免這個錯誤?我不介意比如輸掉'7575932'。 (理想情況下,我想丟棄'7575932.'值)
我在盡我所能去遵循最佳實踐......正在將列
DBorderid
改爲nvarchar
唯一的「最佳實踐」替代方案?
(我使用SQL Server 2008)
它的工作很好,謝謝,現在我得到:消息248,級別16,狀態1,2號線nvarchar值'3545427103'的轉換溢出了一個int列。該語句已終止。是否有任何內嵌優雅/最佳實踐解決方案? – Chicago1988
@ Chicago1988如何處理這種附加條件('3545427103'作爲數字(38,0))在-2147483648和2147483648之間,那麼......' – Max
聽起來不錯,但不好的數據會繼續下去......所以呢最終會再次失敗......我不能相信我找不到這個簡單的東西的解決方案... – Chicago1988