Ошибка преобразования при преобразовании значения varchar в int



Я получаю ошибку с тем, что должно быть простым запросом для вставки данных. Я уже искал, но, хоть убей, не могу понять, что происходит. Вот мой 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.



Почему он пытается преобразовать это в int, когда столбец varchar?

945   2  

2 ответов:

Интересно, пытается ли SQL Server перехитрить вас здесь. Я заметил, что строка 'enable_sandbox_number' содержит целое число для второго параметра. Возможно, SQL Server преобразуется в int из-за этого. Можете ли вы изменить 1 на '1' в этой строке?

Интересно, что 1 in ('enable_sandbox_number', 1, 1) не заключен в кавычки. По-видимому, это работает нормально. Что произойдет, если вы попробуете 0.84 без кавычек?

Comments

    Ничего не найдено.