我在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.
目的是将所有数据都包含在字符串中,然后在另一台服务器上的临时表中获取这些数据。
答案 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