我在插入数据的简单查询中遇到错误。我已经完成了搜索,但对于我的生活,我无法弄清楚发生了什么。这是我的SQL:
IF OBJECT_ID('settings') IS NOT NULL
DROP TABLE [settings]
CREATE TABLE [settings] (
[id] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY,
[tenant_id] [bigint] NOT NULL,
[name] [varchar](32) NOT NULL,
[value] [varchar](255) NOT NULL
)
INSERT INTO settings
(name, value, tenant_id)
VALUES
('from_email' , '', 1),
('dash_rss', '', 1),
('theme', '', 1),
('version', '0.84', 1),
('iphone_theme', '', 1),
('enable_sandbox_number', 1, 1),
('twilio_endpoint', 'https://api.twilio.com/2008-08-01', 1);
我得到的错误是:将varchar值'0.84'转换为数据类型int时转换失败。
当列是varchar时,为什么要尝试将其转换为int?
答案 0 :(得分:4)
我想知道SQL Server是否试图在这里超越你。我注意到你的'enable_sandbox_number'行包含第二个参数的整数。也许SQL Server正在转换为int。您可以将1
更改为该行中的'1'
吗?
答案 1 :(得分:0)
有趣的是没有引用1('enable_sandbox_number',1,1)。据推测它可以正常工作。如果您尝试0.84未引用会发生什么?