Дублировать все столбцы, кроме некоторых из них

Есть ли возможность дублировать строку на сервере sql без записи всех столбцов? Я просто хочу написать столбцы, которые я хочу вставить самостоятельно.

Например:

ТАБЛИЦА:

Id|Name|Status|Date
-------------------
2|abca|active|03.10

поэтому я могу сделать:

INSERT INTO MYTABLE (Id, Name, Status, Date )
SELECT NEWID(), "bird", status, Date
  FROM MYTABLE 
 WHERE Id = "2"

он будет дублировать строку:

Id  |Name|Status|Date
-------------------
2   |abca|active|03.10
fg35|bird|active|03.10

нельзя ли дублировать все столбцы, кроме того, что я пишу?

в этом примере: что-то вроде (псевдокод):

дублировать все столбцы в MYTABLE, где Id="2", кроме (id="newID()", name="bird")


person Alon Shmiel    schedule 03.10.2013    source источник


Ответы (1)


Нет, в SQL Server вам нужно указать все значения для всех столбцов:

INSERT INTO TableName VALUES(value1, value2, ...)

или укажите столбцы, которые вы хотите вставить в

INSERT INTO TableName (column1, column2, ...) VALUES(value1, value2, ...)

Вы не можете достичь того, чего хотите в общем смысле.

В некоторых конкретных случаях может быть способ сделать это, купив дублирование всех столбцов и обновив некоторые, но это будет зависеть от вашей способности отличить недавно вставленную строку от ранее существовавшей.

person Szymon    schedule 03.10.2013