Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
Tavocer
Member

Откуда:
Сообщений: 27
Просьба помочь.
По ошибке удалил 200 записей в таблице SQL Server, при копировании из резервной копии записи естественно получают новые значения первичного ключа, однако необходимо скопировать записи с сохранением значений ключа, которые записи имели перед удалением.

Можно ли это сделать и как? Или изменить уже после копирования записей значения ключа на первоначальные?

Значения ключа связаны с множеством других таблиц в базе данных.

Спасибо за советы
16 май 19, 17:18    [21886498]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Tavocer,

https://docs.microsoft.com/en-us/sql/t-sql/statements/set-identity-insert-transact-sql?view=sql-server-2017
16 май 19, 17:19    [21886501]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
Tavocer
необходимо скопировать записи с сохранением значений ключа, которые записи имели перед удалением.

Можно ли это сделать и как? Или изменить уже после копирования записей значения ключа на первоначальные?
Вы имеете в виду IDENTITY?

Изменить нельзя, но вставить с нужным значением можно, см команду SET IDENTITY_INSERT
16 май 19, 17:21    [21886502]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
Tavocer
Member

Откуда:
Сообщений: 27
Делаю так:
SET IDENTITY_INSERT [база].[dbo].[таблица] ON

потом копирую
insert into [база].[dbo].[SKz]
select * from [источник].[dbo].skz where условие

отвечает:
An explicit value for the identity column in table '[база].[dbo].[SKz]' can only be specified when a column list is used and IDENTITY_INSERT is ON.
16 май 19, 17:36    [21886520]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
Tavocer
Member

Откуда:
Сообщений: 27
в мервой комманде вместо таблица SKz
16 май 19, 17:38    [21886523]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Tavocer,

insert into [база].[dbo].[SKz] (колончки....)
16 май 19, 17:43    [21886526]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
Tavocer
Member

Откуда:
Сообщений: 27
Получилось, огромное мпасибо всем!
Нужно ли сделать SET IDENTITY_INSERT [база].[dbo].[SKz] OFF ?
16 май 19, 17:55    [21886536]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить/скопировать записи с сохранением значений первичного ключа?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
Tavocer
Нужно ли сделать SET IDENTITY_INSERT [база].[dbo].[SKz] OFF ?
Да
16 май 19, 19:21    [21886594]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить