2013-10-03 36 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, ...) 

在一般意义上,你无法达到你想要的。

在某些特定情况下,可能会有一种方法可以购买重复所有列并更新一些列,但这取决于您将新插入的行与以前存在的列区分开来的能力。

相关问题