我有一個巨大的INSERT
-statement與200列和suddendly我得到了可怕的Error converting data type varchar to numeric
。有什麼地方可以看到包含「varchar」值的實際列嗎?我知道我可以一次刪除其中一列,直到錯誤消失,但這非常乏味。「將數據類型varchar轉換爲數字時出錯。」 - 什麼專欄?
8
A
回答
5
您不指定SQL Server版本或行數。
對於SQL2005 +添加OUTPUT
子句的INSERT可能有助於識別流氓行,它會輸出插入的行,直到它,因此下一行是一個與問題遇到錯誤
DECLARE @Source TABLE
(
Col1 VARCHAR(10),
Col2 VARCHAR(10)
)
INSERT INTO @Source
SELECT '1','1' UNION ALL
SELECT '2','2' UNION ALL
SELECT '3','3' UNION ALL
SELECT '4A','4' UNION ALL
SELECT '5','5'
DECLARE @Destination TABLE
(
Col1 INT,
Col2 VARCHAR(10)
)
INSERT INTO @Destination
OUTPUT inserted.*
SELECT *
FROM @Source
返回
(5 row(s) affected) Col1 Col2 ----------- ---------- 1 1 2 2 3 3 Msg 245, Level 16, State 1, Line 23 Conversion failed when converting the varchar value '4A' to data type int.
+0
之前從未試過INSERT上的OUTPUT。謝謝! – Espo 2010-07-09 06:47:21
0
6
不幸的是,這個錯誤是一個嚴重的痛苦,沒有簡單的方法來解決它。當我過去遇到它時,我總是不得不評論列組,直到找到罪魁禍首。
另一種方法可能是使用T-SQL中的ISNUMERIC()函數來嘗試查找罪魁禍首。在你的目標表假設每列數字(相應調整,如果不是),你可以試試這個:
SELECT *
FROM SourceTable
WHERE ISNUMERIC(Column1) = 0
OR ISNUMERIC(Column2) = 0
OR ISNUMERIC(Column3) = 0
OR ISNUMERIC(Column4) = 0
...
這將會使包含您的非數字值的行,而應該讓它非常清楚哪一列它是英寸,我知道它很乏味,但至少它可以幫助你追捕實際價值,除了造成麻煩的專欄之外。
相關問題
- 1. 將數據類型從varchar轉換爲數字時出錯
- 2. 轉換數據類型時出錯varchar
- 3. SQL Server轉換異常:將數據類型varchar轉換爲數字時出錯
- 4. 將varchar轉換爲數字時出錯
- 5. 將數據類型varchar轉換爲int錯誤時出錯?
- 6. 將數據類型varchar轉換爲float時出錯。
- 7. 使用GETDATE將數據類型varchar轉換爲datetime時出錯()
- 8. 錯誤'將數據類型varchar轉換爲數字時出錯' - 創建新表
- 9. 將數據類型varchar轉換爲浮點時出錯
- 10. 將數據類型bigint轉換爲varchar時出錯。
- 11. 將數據類型varchar轉換爲float時出錯。 C#VS
- 12. 算術溢出錯誤轉換數字數據類型爲varchar
- 13. 將數據類型varchar轉換爲浮點數時出現錯誤字符串
- 14. t-sql:將數據類型varchar轉換爲數字在語句中時出錯
- 15. 在VBA/SOAP中將數據類型varchar轉換爲數字時出錯
- 16. 將varchar轉換爲數據類型的算術溢出錯誤
- 17. 將數據類型nvarchar轉換爲數字時出錯 - SQL Server
- 18. 將varchar值轉換爲數據類型時轉換失敗int
- 19. 將varchar值「」....「'轉換爲數據類型int時轉換失敗
- 20. 無法將數據類型爲varchar轉換爲數字
- 21. 算術溢出錯誤將varchar轉換爲數據類型數字
- 22. SQL Server 2008 varchar到十進制的結果是:「將數據類型varchar轉換爲數字時出錯」
- 23. 什麼導致錯誤'算術溢出錯誤將varchar轉換爲數據類型數字'?
- 24. 將varchar值645.00轉換爲數據類型int時出現轉換失敗int
- 25. 錯誤轉換數據類型爲varchar到數字
- 26. SQL錯誤轉換數據類型爲varchar到數字
- 27. 在select語句中將數據類型varchar轉換爲bigint時出錯
- 28. 將數據類型varchar轉換爲varbinary時出錯。 MSSQL在轉換爲整數時
- 29. CONVERT拋出錯誤轉換數據類型日期爲varchar
- 30. 將數據類型varchar轉換爲float時出錯。 C#web服務
您可以一次註釋掉一半列;仍然乏味,但更快。 – 2010-07-01 09:57:26