0

是否可以在不写入所有列的情况下在 sql server 中复制行?我只想写我想自己插入的列。

例如:

表:

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="newID()", name="bird") 之外 Id="2" 的所有列

4

1 回答 1

1

不,在 SQL Server 中,您需要为所有列提供所有值:

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

或提供要插入的列

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

在一般意义上,你无法实现你想要的。

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

于 2013-10-03T12:14:28.937 回答