我确信这已被问及答案,但我找不到。我是TSQL的新手。我正在尝试将几个邮政编码记录(字符串)'插入'到我之前构建的表中。该列设置为varchar(255)。不确定其他245个字符是什么......
当我尝试插入值时,SqlServer会尝试将文本字符串隐式转换为int并失败。
INSERT INTO db.table (city,zip)
SELECT 'New York','12345-1234' UNION ALL
SELECT 'Pittsburgh','98765-4321';
返回“Msg 245,Level 16,State 1,Line 4 将varchar值'12345-1234'转换为数据类型int时转换失败。“
任何帮助将不胜感激。
好的......回到办公室。这是我试图插入的zip列的屏幕抓图。它是一个varchar,上面的代码正确地代表了我正在尝试做的事情。它是'UNION ALL'吗?
答案 0 :(得分:0)
此值不是整数,您插入的字段必须是精度较低的字符串,必须是您可以接收的最长字符串。
答案 1 :(得分:0)
没关系。我想到了。在我插入的大型数据集中,有一些粗略输入的数据被作为一个整体被选中。然后,TSQL尝试转换为层次结构中较高的数据类型并中断插入。
感谢大家的帮助。