Как исправить «преобразование не удалось, если преобразование значения varchar« превращено »в тип данных int» - PullRequest
0 голосов
/ 18 июня 2019

Я сделал некоторые изменения в своей базе данных IMOS и заставил ее работать, но когда мой клиент попытался сделать то же самое, они закончили с ошибкой. При поиске в Google я думаю, что строка должна включать некоторые CONVERT (...), но я не знаю, как это сделать. Кто-нибудь может мне помочь? Код и ошибка ниже.

update CAMDLATTROUTPUT
set OUTPUTFLAG = 1
where ATTRTYPE = '10400'
  and ATTRTYPE = 'is turned'

Ошибка:

Преобразование не удалось, если преобразование значения varchar «превращено» в тип данных int.

Ответы [ 2 ]

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

Получилось, изменилась строка -

обновить CAMDLATTROUTPUT set OUTPUTFLAG = 1, где ATTRTYPE = '10400' и ATTRIBUTE = 'превращен'

в

update [imos]. [dbo]. [CAMDLATTROUTPUT] установить OUTPUTFLAG = 1, где ATTRTYPE = '10400' и ATTRIBUTE = 'повернут'

Не знаю, почему первый не работает для всех, но я надеюсь, что по крайней меректо-то найдет решение своей проблемы отсюда:)

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

Кажется, столбец ATTRTYPE определен как int, поэтому первая часть вашего утверждения должна быть

UPDATE CAMDLATTROUTPUT
SET OUTPUTFLAG = 1
WHERE ATTRTYPE = 10400

(без одинарных кавычек).

Что смущает меня, так этострока

AND ATTRTYPE = 'is turned'

, которая не может быть целым числом.Поэтому я подозреваю, что это может быть внешний ключ к другой таблице, которая содержит запись с идентификатором и текст «повернут».В этом случае вам понадобится объединение.

С другой стороны: один столбец записи никогда не может быть таким же, как 10400 И «повернут» одновременно.Следовательно, даже если ATTRTYPE будет строкой и вы не получите синтаксическую ошибку, количество строк, затронутых этим запросом, всегда будет равно 0.

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