'转换varchar值时转换失败'连接数据库字段时

时间:2014-03-20 13:31:47

标签: sql-server tsql

我在SQL中遇到一个小问题:

SELECT 'INSERT INTO #tempTable (Variable1,Variable2) values (''' + Variable1 + ''','''+ Variable2 +'';'
FROM Table1

我的第一个变量是varchar,第二个变量是int。我说错了,说: Conversion failed when converting the varchar value INSERT INTO #tempTable (Variable1,Variable2) values ('00ZZZ','' to data type int.

目的是将所有数据都包含在字符串中,然后在另一台服务器上的临时表中获取这些数据。

1 个答案:

答案 0 :(得分:3)

多次阅读错误信息后,我注意到+符号。

SQL语言似乎尝试将varchar部分和int部分添加到int。我猜你使用的是SQL Server。

这在SQL Server中失败并显示错误消息:

select 'abc' + 123

你应该在数字部分周围放置一个演员:

select 'abc' + cast(123 as varchar)

所以在你的情况下:

SELECT 'INSERT INTO #tempTable (Variable1,Variable2) values ('''
       + cast(Variable1 as varchar)
       + ''','''
       + Variable2
       +'');'
FROM Table1