У меня есть приложение, использующее SQL Server 2016 для резервного копирования. Я следующее заявление, которое я пытаюсь запустить:Ошибка конвертации с помощью простого оператора SQL UPDATE
UPDATE dbo.AspNetUsers
SET [IsActive] = 1
WHERE [Id] = '1b08b7a9-2978-4116-8a9c-e86bc9ae8bbf'
[IsActive]
являетсяBIT
колонна[Id]
NVARCHAR(128)
является столбец
При выполнении, я получаю следующее сообщение об ошибке:
Msg 245, Level 16, State 1, Procedure tUserActiveChange, Line 21 [Batch Start Line 4]
Conversion failed when converting the nvarchar value '1b08b7a9-2978-4116-8a9c-e86bc9ae8bbf' to data type int.
Похоже, 1 ike довольно простое заявление о обновлении. Я даже попробовал один и тот же тип инструкции в другой базе данных на том же сервере, где обновленный столбец - BIT
, и используя столбец VARCHAR
для состояния WHERE
, и он работал нормально.
Что, черт возьми?
Ваше поле идентификатора (в таблице) не является NvarChar (128). Фактически это определяется как Int. У вас должен быть другой столбец в таблице, определяемой как GUID – Sparrow
Вы уверены, что тип 'id' не' int'? запустите 'sp_help AspNetUsers' и подтвердите. – DarkKnight
Я проверил дважды, а [Id] - VARCHAR (128) – TSoder