【发布时间】:2017-07-06 14:03:26
【问题描述】:
我遇到了 SQL Server 问题。
我已经创建了一个这样的表:
create table Components
(
pk BIGINT NOT NULL PRIMARY KEY IDENTITY,
id VARCHAR(50),
descr VARCHAR(50),
in_m INT,
in_iy INT,
p_fw VARCHAR(5000)
);
我正在尝试插入几个值:
insert into Components (id, descr, in_m, in_iy, p_fw)
values ('FW000_A', '0%', 0, 0, '[0.0,0.0,0.0]'),
('FW000_B', '1%', 1, 1, '[1.0,1.0,1.0]');
我收到以下错误:
消息 245,第 16 级,状态 1,第 111 行
将 varchar 值“0%”转换为数据类型 int 时转换失败。
即使descr 列正确定义为varchar(50)。
有人可以帮帮我吗?为什么 SQL Server 试图将我的字符串转换为 int 值?
【问题讨论】:
-
您的代码在 SQL Server 2014 中适用于我。rextester.com/UOOT87695 您确定它与您刚刚创建的表相同吗?相同的架构等?
-
我正在使用 SQL Server Express 2012 但是是的,我有“使用 mydb;”文件开头的语句。编辑:我尝试为创建和插入查询添加符号 [schema].[table],但我得到的结果与以前相同......
-
如果您运行 SQL 跟踪(或使用 hibernatingrhinos.com/products/nhprof),实际通过网络传递的 SQL 是什么?
-
数据库与模式不同。再检查一遍?像 mydb.dbo.components vs mydb.AnotherSchema.components
-
代码在这里也可以正常工作:rextester.com/live/EAL20795
标签: sql sql-server