【发布时间】:2017-04-06 20:57:05
【问题描述】:
我确定有人询问并回答了这个问题,但我找不到。我是 TSQL 的新手。我正在尝试将几个邮政编码记录(字符串)“插入”到我之前构建的表格中。该列设置为 varchar(255)。不知道其他 245 个字符是干什么用的……
当我尝试插入值时,SqlServer 尝试将文本字符串隐式转换为整数,但失败了。
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,上面的代码正确地代表了我正在尝试做的事情。是“全联盟”吗?
【问题讨论】:
-
根据我的经验,SQL Server 仅在列需要时尝试在数据类型之间进行转换。您列出的查询在语法上不正确,不会运行。您能否提供您尝试运行的实际查询?
-
可以在 dba.stackexchange.com 中询问
-
也许该表旨在存储由五位整数组成的区域改进计划代码。 ZIP+4 编码自 1983 年以来才出现,因此可能尚未适应。
标签: sql tsql type-conversion varchar implicit