将 varchar 值转换为 int 时转换失败

发布于 2024-09-29 15:06:54 字数 756 浏览 5 评论 0原文

我在插入数据的简单查询中遇到错误。我已经进行了搜索,但对于我的生活,我无法弄清楚发生了什么。这是我的 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 ?

I'm getting an error with what should be a simple query to insert data. I've done searching, but for the life of me, I cant figure out whats happening. Here's my 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);

And the error I get is: Conversion failed when converting the varchar value '0.84' to data type int.

Why is it trying to convert this to int when the column is varchar?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尐籹人 2024-10-06 15:06:55

我想知道 SQL Server 是否在这里试图智取你。我注意到您的“enable_sandbox_number”行包含第二个参数的整数。也许 SQL Server 正因为这个原因而转换为 int。您可以将该行中的 1 更改为 '1' 吗?

I wonder if SQL Server is trying to outsmart you here. I noticed that your 'enable_sandbox_number' row includes an integer for the second parameter. Maybe SQL Server is converting to int because of that. Can you change 1 to '1' in that row?

被你宠の有点坏 2024-10-06 15:06:55

有趣的是 ('enable_sandbox_number', 1, 1) 中的 1 没有被引用。想必它工作正常。如果尝试不加引号的 0.84 会发生什么?

Interesting that the 1 in ('enable_sandbox_number', 1, 1) is not quoted. Presumably it works okay. What happens if you try 0.84 unquoted?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文