Вставка в таблицу SQL с первичным ключом удаленных строк с первоначальным ключом.

У нас есть база ETP с таблицей DepartmentObject, с первичным ключом PrimaryKey.

В этой таблице удалили строку с первичным ключом PrimaryKey = 63029

Строку нужно вернуть назад из резервной копии базы, которую восстановили под именем ETP_19.

Копируем нужную строку из резервной копии в таблицу ETP_OBJECT

SELECT [PrimaryKey],[DepartmentObjectName] INTO ETP_OBJECT FROM ETP_19.dbo.DepartmentObject WHERE PrimaryKey = 63029

Вставляем строку, при этом строку вставляем с прежним первичным ключом!

SET IDENTITY_INSERT dbo.DepartmentObject ON
 INSERT INTO DepartmentObject ( PrimaryKey ) 
 SELECT PrimaryKey FROM ETP_OBJECT
SET IDENTITY_INSERT DepartmentObject OFF

Теперь обновляем полученную строку данными

UPDATE dbo.DepartmentObject  SET dbo.DepartmentObject.[DepartmentObjectName]= dbo.ETP_OBJECT.[DepartmentObjectName] FROM dbo.DepartmentObject INNER JOIN
 dbo.ETP_OBJECT ON dbo.DepartmentObject.PrimaryKey = dbo.ETP_OBJECT.PrimaryKey

Запросы сокращены для упрощения. Естественно таким же образом очень просто вставить сразу несколько удаленных строк.

 

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *