Ошибка преобразования при преобразовании значения varchar в int - PullRequest
5 голосов
/ 28 октября 2010

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

Ответы [ 2 ]

4 голосов
/ 28 октября 2010

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

0 голосов
/ 28 октября 2010

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

...