sql-server-2008 - 在sql server 2008 new中将varchar值转换为数据类型int时转换失败

标签 sql-server-2008

当我运行此查询时,出现此错误。

我知道这是不对的,但我确实这么做了,我只是想得到合理的答案。

为什么当我们运行下面的代码时会出现此错误。

DECLARE @tbl TABLE ( id INT, Name VARCHAR(5) );

INSERT INTO @tbl
        SELECT 1 AS Id, 142 AS Alphabets
        UNION
        SELECT 2, 'XYZ'
        UNION 
        SELECT 2, 'ABC'
        SELECT * FROM @tbl

Getting error 'Conversion failed when converting the varchar value to data type int'

最佳答案

问题是142。
当你这样写142时,
SQL 认为第二列的这个联合表包含一个 INT。
你必须这样写 '142'

DECLARE @tbl TABLE (id INT, Name VARCHAR(5));

INSERT INTO @tbl
SELECT 1 AS Id, '142' AS Alphabets
UNION
SELECT 2, 'XYZ'
UNION 
SELECT 2, 'ABC'

SELECT * FROM @tbl

关于sql-server-2008 - 在sql server 2008 new中将varchar值转换为数据类型int时转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37546083/

相关文章:

SQL Server 管理工作室

c# - 我可以使用 Microsoft Sync Framework 将本地 ms access (mdb) 数据库与 SQL Server 同步吗?

sql-server-2008 - SQL中“:”附近的语法不正确

sql - 添加/删除表格的列 - 代码维护/优化

sql-server-2008 - 从 DATETIME2 到 DATETIME 的意外舍入

sql-server - 如何对T-SQL声明的表变量的两列进行设置和索引?

php - 使用 sqlsrv 切换数据库的正确方法是什么?

sql - t-sql GROUP BY 和 COUNT,然后包含 COUNT 中的 MAX

sql-server-2008 - 根据其他包的状态执行 SQL Server 代理作业/包

sql - 我可以在 T-SQL 数据库中进行递归选择吗