回答
試試這個:
錯誤是因爲你正試圖轉換一個字符值到整數值。只需添加以下條件的查詢,以便它會選擇只整數值
where ISNUMERIC(col+ '.0e0')=1
我的猜測是,您的查詢看起來是這樣的:
select * from mytable where SomeField = 'B6UJ978023EC'
如果是這樣的話,SomeField
被宣佈爲一個INT
數據類型和Sql Server正在嘗試將'B6UJ978023EC'
轉換爲INT
,這將無法正常工作。
您可能試圖執行插入/更新操作,因此如果SomeField是INT,則這不起作用。
update mytable
set SomeField = 'B6UJ978023EC'
where something = something
insert mytable (field1, field2, SomeField)
values(123, 'abc', 'B6UJ978023EC')
同樣的結果,轉換轉換VARCHAR值時失敗「B6UJ978023EC」爲數據類型int
在這種情況下,無論是改變列的數據類型,或改變它的變量的值。
更新:
如果列的數據類型是(N)VARCHAR
但包含一些實數,那麼你可以簡單地添加在你身邊正在尋找數單引號。
-- works
select * from mytable where SomeField = '123456'
-- doesn't work - same error
select * from mytable where SomeField = 123456
它也可能是另一種方式:如果'SomeField'是一個'varchar' /'nvarchar'字段,如果你從mytable中選擇* whereField = 1'(搜索一個數值),你會得到同樣的錯誤。並且表中至少有一行具有非數字值。 – 2012-08-01 09:44:43
@ChristianSpecht - 是。 – 2012-08-01 09:52:57
有什麼可以解決的?到這個 – RHM 2012-08-01 10:54:01
- 1. SQL Server 2005 - 轉換失敗
- 2. SQL Server - 轉換失敗
- 3. SQL Server的PIVOT查詢 「轉換失敗」
- 4. SQL Server日期時間轉換失敗
- 5. SQL SERVER - 日期轉換失敗
- 6. 在SQL Server中轉換失敗
- 7. SQL Server轉換失敗varchar到int
- 8. SQL Server批量插入轉換失敗
- 9. 轉換失敗(SQL Server 2008中)
- 10. 的Sql轉換失敗
- 11. ASP.NET/SQL Server:從字符串轉換爲uniqueidentifier時轉換失敗
- 12. 從字符串轉換爲uniqueidentifier時轉換失敗sql server 2014
- 13. 轉換失敗時SQL
- 14. SQL轉換失敗錯誤
- 15. SQL:轉換失敗錯誤
- 16. SQL到LINQ轉換失敗
- 17. 數據轉換失敗SQL
- 18. 轉換varchar值時SQL轉換失敗
- 19. sql錯誤:轉換nvarchar轉換失敗
- 20. 轉換失敗
- 21. 轉換失敗
- 22. 轉換失敗
- 23. 轉換失敗
- 24. SQL Server 2008 - 從字符串到int的轉換失敗
- 25. SQL Server複製中的數據轉換失敗
- 26. 轉換失敗
- 27. 轉換失敗時,轉換日期和/或時間從字符串的SQL Server
- 28. 的SQL Server 2005:轉換轉換爲varchar值 '0.00' int數據類型時失敗
- 29. pyodbc.DataError:('22018',「[22018] [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]轉換失敗]錯誤
- 30. 使用CAST或CONVERT時SQL Server錯誤「轉換失敗」
什麼是您正在運行的查詢? – ChrisBint 2012-08-01 09:26:05
您可能試圖連接varchars和ints,在這種情況下,Sql Server會嘗試將varchars轉換爲int。使用'convert'來防止它。 – 2012-08-01 09:27:28
-1。 「我的猜測是...」和「你可能......」應該向你清楚地表明你沒有提供足夠的信息讓問題能夠被精確地回答。你的問題的當前形式聽起來很像「我正在編寫一個程序,並且我得到錯誤消息'xyz沒有被定義爲變量或參數',我該如何解決它?」。 – 2012-08-01 14:05:56