2013-10-03 37 views
0

是否有一個選項可以在不寫所有列的情況下在sql server中複製行?我只想寫我想自己插入的列。複製除了其中一些列以外的所有列

例如:

MYTABLE:

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 

我不能複製所有列,除了fo我寫的是什麼?

在這個例子中

: 像(僞代碼):

複製在MYTABLE中的所有列其中Id = 「2」 除了(ID = 「NEWID()」,名字= 「鳥」)

回答

1

沒有,在SQL Server您可能需要爲所有列提供的所有值:

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

或提供要插入到

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

在一般意義上,你無法達到你想要的。

在某些特定情況下,可能會有一種方法可以購買重複所有列並更新一些列,但這取決於您將新插入的行與以前存在的列區分開來的能力。

相關問題