Я побежал простой запрос:Что именно означает «(затронуты строки X)?
UPDATE table
SET user_id = '123456'
WHERE user_id = '234567'
Затем я получил сообщение об ошибке:
(2942 row(s) affected)
Msg 2627, Level 14, State 1, Line 3
Violation of PRIMARY KEY constraint 'PK__users__6B24EA82'. Cannot insert duplicate key in object 'dbo.users'. The duplicate key value is (123456).
The statement has been terminated.
Означает ли это, что я фактически внес изменения в 2942 строк? Это не так. Мне не очень повезло в моих поисках. Любая помощь приветствуется.
Эта ошибка не имеет смысла. Если на 'user_id' есть ограничение первичного ключа, на него будет влиять только одна строка' where user_id = '234567''. –
Нет, это означает, что 2942 строки соответствуют условию. –
@DavideR. , , , Согласно ошибке, столбец с первичным ключом * является * 'user_id' - тот же столбец используется как для назначения, так и для' where'. Возвращаемые строки не имеют смысла. Сравнение равенства по первичному ключу никогда не должно возвращать более одной строки. Если это был составной ключ, тогда сообщение об ошибке должно содержать все столбцы. –