Невозможно установить для столбца isdeleted значение 0 для определенных значений в столбце кода в базе данных. - PullRequest
0 голосов
/ 19 июня 2019

Попытка обновить таблицу со столбцом varbinary. У меня есть столбец с именем code, для значений которого необходимо установить столбец isdeleted равным 0, который, как оказалось, равен varbinary. Мне нужно установить удалено, чтобы установить 0 для многих значений в столбце кода.

Я пробовал оператор update, установив isdeleted в 0 для столбца кода, где код находится в определенных значениях.

Update dbo.code
set isdeleted = '0' 
where code in ('1', '2',  '3')

Ожидайте, что эти значения будут установлены в 0, однако я получаю ошибку

Сообщение 257, Уровень 16, Состояние 3, Строка 1
Неявное преобразование из типа данных varchar в varbinary не допускается. Используйте функцию CONVERT для выполнения этого запроса

1 Ответ

0 голосов
/ 19 июня 2019

От Google: Тип VARBINARY похож на тип VARCHAR, но хранит двоичные байтовые строки, а не недвоичные символьные строки.M представляет максимальную длину столбца в байтах.Он не содержит набор символов, а сравнение и сортировка основаны на числовом значении байтов.

Можете ли вы попробовать -

Update dbo.code
set isdeleted = 0 -- Remove single quotes from the Value 
where code in ('1', '2',  '3')

У меня есть некоторые дополнительные замечания / комментарии по вашему требованию,Как вы упомянули, вы хотите нажать «0» в своем столбце isdeleted, я думаю, вы ищете для сохранения 1 или 0 в этом столбце, чтобы определить, какая строка (может быть) удалена или нет.Если я угадаю правильно, я предлагаю использовать столбец типа данных BIT и сохранить 1 или 0 в этом столбце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...