У меня вопрос об ошибке «Нарушение ограничения PRIMARY KEY», которую нельзя воссоздать следующим образом:
Нарушение ограничения PRIMARY KEY 'PK__FPIO_Log__3214EC27EB54FBE5'. Невозможно вставить повторяющийся ключ в объект 'dbo.FPIO_LoginActivity'. Повторяющееся значение ключа: (1).
Действие заключается в заполнении FPIO_LoginActivity запросом выбора. Вставлена только одна строка. Я не могу найти ни одной строки с повторяющимся идентификатором из источника данных. Я попытался выполнить сам оператор, а не весь скрипт, и все прошло без проблем. 71112 строк вставлены успешно. Поэтому я не могу воссоздать проблему. Я не могу найти какой-либо другой код, относящийся к этой таблице, а также обновить или вставить эту таблицу.
Может ли кто-нибудь предложить мне возможную причину?
Это мой код: SET IDENTITY_INSERT [dbo] . [FPIO_LoginActivity] ВКЛ;
insert into [dbo].[FPIO_LoginActivity](CreatedBy, CreatedOn, HostName, ID,
IpAddress, IsDeleted, IsSuccessful, LoginDate, ModifiedBy, ModifiedOn,
UserID, UserName)
select case when fla.CreatedBy not in (select u.ID from [dbo].[User] u)
then 1 else fla.CreatedBy end CreatedBy, fla.CreatedOn, fla.HostName,
fla.ID, fla.IpAddress, fla.IsDeleted, fla.IsSuccessful, fla.LoginDate,
case when fla.ModifiedBy not in (select u.ID from [dbo].[User] u) then 1
else fla.ModifiedBy end ModifiedBy,
fla.ModifiedOn,
case when u.ID is not null then u.ID else null end UserID,
fla.UserName
from [SWIMS13].[dbo].[FPIO_LoginActivity] fla left join [SWIMS13].[dbo].
[User] u
on upper(fla.UserName)=upper(u.UserName)
SET IDENTITY_INSERT [dbo].[FPIO_LoginActivity] OFF;