Как Вы копируете запись в таблице SQL, но выгружаете уникальный идентификатор новой строки?

118
задан Community 23 May 2017 в 12:26
поделиться

6 ответов

Попробуйте это:


insert into MyTable(field1, field2, id_backup)
    select field1, field2, uniqueId from MyTable where uniqueId = @Id;

Любые поля, не определенные, должны получить свое значение по умолчанию (который является обычно ПУСТЫМ если не определенный).

179
ответ дан AaronSieb 24 November 2019 в 01:55
поделиться

Определите все поля, но Ваше поле ID.

INSERT INTO MyTable (FIELD2, FIELD3, ..., FIELD529, PreviousId)
SELECT FIELD2, NULL, ..., FIELD529, FIELD1
FROM MyTable
WHERE FIELD1 = @Id;
10
ответ дан Scott Bevington 24 November 2019 в 01:55
поделиться
insert into MyTable (uniqueId, column1, column2, referencedUniqueId)
select NewGuid(), // don't know this syntax, sorry
  column1,
  column2,
  uniqueId,
from MyTable where uniqueId = @Id
2
ответ дан Jeffrey L Whitledge 24 November 2019 в 01:55
поделиться

Если "ключ" является Вашим полем PK, и это является авточисловым.

insert into MyTable (field1, field2, field3, parentkey)
select field1, field2, null, key from MyTable where uniqueId = @Id

это генерирует новую запись, копируя field1 и field2 от исходной записи

1
ответ дан Eduardo Campañó 24 November 2019 в 01:55
поделиться

Я предполагаю, что вы пытаетесь избежать записи всех имен столбцов. Если вы используете SQL Management Studio, вы можете легко щелкнуть правой кнопкой мыши по таблице и «Сценарий как вставка» ... тогда вы можете повозиться с этим выводом, чтобы создать свой запрос.

12
ответ дан 24 November 2019 в 01:55
поделиться

Вы можете сделать так:

INSERT INTO DENI/FRIEN01P 
SELECT 
   RCRDID+112,
   PROFESION,
   NAME,
   SURNAME,
   AGE, 
   RCRDTYP, 
   RCRDLCU, 
   RCRDLCT, 
   RCRDLCD 
FROM 
   FRIEN01P      

Там вместо 112 вы должны поместить номер максимального id в таблицу DENI / FRIEN01P.

0
ответ дан 24 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

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