我有一個varchar(18)列存儲這些值:'28412661022','2147483647'和'312231'。爲什麼整數值> 2147483647爲「varchar值溢出int列」錯誤?
當我執行此查詢時:SELECT * FROM TABLE WHERE COLUMN=28412661022
,查詢成功完成。但是,當我執行此查詢:SELECT * FROM TABLE WHERE COLUMN=2147483647
,我得到預期的「varchar值的轉換'28412661022'溢出int列」錯誤。
你知道這是爲什麼嗎? 28412661022> 2147483647,我相信這是SQL Server的最大允許整數。
因爲隱式轉換爲'bigint'的。 **更正 - 數字 – SqlZim
看看這裏: https://stackoverflow.com/questions/13297547/sql-server-and-implicit-conversion-of-types – Egbert
你能詳細說明嗎?我不關注隱式轉換如何在一種情況下工作,而不是在另一種情況下工作。 – Avyncentia