Преобразование проблемы в операторе обновления

После обновления моих данных я получаю:

Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query.

Столбец, который я обновляю, уже varbinary, поэтому я запутался.

UPDATE [db].[dbo].[table_backup] 
SET [isDeleted] = '1'
WHERE column IN (' ', ' ', ' ')

Какого типа вы ожидаете от '1'?

PM 77-1 06.02.2019 01:08

Почему вы храните то, что выглядит как логическое значение в поле varbinary? Почему не поле bit?

Dale K 06.02.2019 01:26
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
73
1

Ответы 1

Судя по предоставленным данным, вы пытаетесь сохранить битовые/логические данные (да/нет, истина/ложь) в столбце IsDeleted.

Однако в настоящее время у вас есть IsDeleted, установленный в столбец varbinary. Хотя у varbinary есть свои применения, в вашем случае это не рекомендуется.

Решением здесь было бы изменить тип данных на бит.


В качестве альтернативы избавьтесь от кавычек:

UPDATE [db].[dbo].[table_backup] SET 
  [isDeleted] = 1
WHERE 
column in (' ', ' ', ' ')

Я не могу изменить тип данных и согласен с тем, что тип данных для этого столбца следует изменить из-за плохого дизайна, однако я не могу изменить тип данных для своего лида. Я знаю, что есть способ вставить туда значения, но я также не хочу вставлять 0x или 1x в качестве значений. Я хочу сделать true или false, «1» или «0».

user11020316 06.02.2019 11:07

Другие вопросы по теме