【发布时间】:2017-10-07 19:58:54
【问题描述】:
我有超过 50 列的 Audit 表,需要通过仅更改一列值(列 CreatedDate,将值设置为 GETDATE())来插入所需的行(重复)。我知道这可以通过 INSERT INTO SELECT * FROM 来实现,但由于有 50 多列,代码看起来很乱:
INSERT INTO Audit_Table (Col1, Col2, .....CreatedDate, ......, Col50, ...ColN)
SELECT (Col1, Col2, .....GETDATE(), ......, Col50, ...ColN) FROM Audit_Table
WHERE Audit_Table.Id = Desired_Id
如果我不应该更改 CreatedDate 列的值,那将非常简单:
INSERT INTO Audit_Table SELECT * FROM Audit_Table WHERE Audit_Table.ID = Desired_Id
有没有其他方法可以复制行并仅更改一个/所需的列值?
【问题讨论】:
-
Ups,我忘了,是MSSQL。
-
我不会考虑明确说明列名是混乱的。如果您使用的是 SSMS,您只需将 Column 节点从对象资源管理器拖到您的查询中。
标签: sql sql-server select insert