SQL Server:如何将表1数据复制到含日期列的表2并插入当前日期
解决SQL Server插入数据时的GETDATE()错误问题
你的错误是因为语法使用不当:你把GETDATE()放在了FROM子句后面,SQL Server会将其识别为表名,但实际上不存在名为GETDATE的表,因此抛出“invalid object name 'GETDATE'”的错误。
正确的做法是将GETDATE()作为SELECT查询的一个字段,让每条从table1取出的记录都带上当前日期,插入到table2的date列中。以下是两种可行写法:
1. 明确指定字段(推荐)
这种写法更安全,即便后续表结构变更(比如新增字段),也不容易出错:
INSERT INTO table2 (列1, 列2, ..., date) SELECT 列1, 列2, ..., GETDATE() FROM table1;
只需把上述代码中的列1, 列2, ...替换为table1实际的所有字段名即可。
2. 简化写法(仅适用于特定场景)
如果table2的列顺序恰好是table1的所有列 + 最后一个date列,可以使用这种简化写法:
INSERT INTO table2 SELECT *, GETDATE() FROM table1;
内容的提问来源于stack exchange,提问作者Mohtesham
相关产品推荐
相关产品推荐

