Редактировать / переназначить первичный ключ при копировании таблицы - Microsoft SQL Server

Можно ли редактировать поле одновременно с копированием? У меня есть запрос, который копирует мне таблицу, и мне нужно отредактировать исходный PK, который может быть любым числом, к соответствующему целевому PK (если предыдущая строка назначения (test) - 5, то копируемая мной будет 6, ID БД может быть любым числом).

В приведенном ниже коде PK - это id, исходной таблицей является DB, а Destination - test.

use DB
GO

INSERT INTO test.dbo.tabla (Id,Campo2)
--Aqui tengo que reasignar Id al que le corresponga
select Id,Campo2
-- tabla de DB
       FROM tabla 
       where Id = 16
0
задан 27.11.2019, 15:42
2 ответа

(Первое всего, извини меня, если ты выдвинул это решение, но ты не нуждаешься в ней, чтобы решать твою проблему).

С INSERT FROM SELECT ты получаешь цель, что ты помечаешь себя, но а следовательно я разобрался в твоем вопросе, стоимость идентификация ты хочешь, чтобы он был последовательным. Почему не разрабатывать тогда твоего Примари Кеи как авточисловая последовательная стоимость?

Таким образом, ты не был бы должен беспокоиться о том, чтобы проверить стоимость Id во время добавления нового одного. В признаке IDENTITY ты помечаешь начало и увеличение стоимости пойдите. Например: IDEMNTITY (1,1) хочет сказать, что ты начался бы с Id=1 и увеличивал бы 1 в 1 стоимость Id из-за каждого INSERT.

оставил Тебе пример того, каким был бы рисунок:

CREATE TABLE dbo.Test(
Id int IDENTITY(1,1) NOT NULL, 
Campo VARCHAR(20) NOT NULL,
PRIMARY KEY (Id));

И пример INSERT, основанного на твоем примере, где ты не был бы должен беспокоиться о предыдущей стоимости Id помещать следующего:

INSERT INTO dbo.Test
Select Campo2
From Tabla
Where Id=16
0
ответ дан 01.12.2019, 10:46

В insert into он должен быть колонны, которые он идет вводить, и достаточно издавать стоимость, которая вводится в того, кто желается:

использовал DB GO

INSERT INTO test.dbo.tabla (Пойдите, Campo2)

select 6, Campo2

FROM таблица

where Пойдите = 16

сходный Вопрос на английском: https://stackoverflow.com / questions / 9879830/select-modify-and-insert-into-the-same-table

0
ответ дан 01.12.2019, 10:46

Теги

Похожие вопросы