Фактическая причина ошибки в операторе заключается в том, что вы используете VALUES
конструктор табличных значений. В этой ситуации, как объясняется в документации , значения , указанные в многострочном операторе INSERT, соответствуют свойствам преобразования типов данных синтаксиса UNION ALL. Это приводит к неявному преобразованию несопоставленных типов в тип с более высоким приоритетом .
Таким образом, с данными в вопросе значение 'MG'
(varchar
) из первой строки неявно преобразован в int
, потому что у вас есть 881
(int
) во второй строке, а тип данных int
имеет более высокий приоритет , чем тип данных varchar
.
Выполните оператор INSERT
одним из следующих способов:
- Использование одного оператора и подходящего типа данных
varchar
(значения 'MG'
и '881'
для столбец option_code
) - Использование двух отдельных операторов и типов данных
varchar
и int
(значения 'MG'
и 881
для столбца option_code
)
Single INSERT
оператор с соответствующими типами данных:
INSERT INTO dbo.option_list
(vehicle_id,option_id,option_type,option_code,manuf_name,id_902,id_903,id_904,id_905,id_100902,id_100903,id_100904,id_100905)
VALUES
(11280320191201,1142,'C','MG','Machine Grey Metallic',0,0,0,0,0,0,0,0),
(11688620170510,1190,'O','881','Automatic boot pull down',635.25,525,0,0,635.25,525,0,0)
Два INSERT
оператора:
INSERT INTO dbo.option_list (vehicle_id,option_id,option_type,option_code,manuf_name,id_902,id_903,id_904,id_905,id_100902,id_100903,id_100904,id_100905)
VALUES
(11280320191201,1142,'C','MG','Machine Grey Metallic',0,0,0,0,0,0,0,0)
INSERT INTO dbo.option_list (vehicle_id,option_id,option_type,option_code,manuf_name,id_902,id_903,id_904,id_905,id_100902,id_100903,id_100904,id_100905)
VALUES
(11688620170510,1190,'O',881,'Automatic boot pull down',635.25,525,0,0,635.25,525,0,0)