从现有表插入新表,并添加新字段

时间:2017-07-06 13:04:09

标签: sql sql-server

我需要插入(每月备份我将恢复到我的source_database中)到dest_database中,并添加一个新的DATE字段,该字段将说明来自哪个月份的数据。所以最后一切都在dest_database中,DATE字段指定它所属的月份。

我需要做什么?

INSERT INTO dest_table
(SELECT *
FROM source_table)

4 个答案:

答案 0 :(得分:2)

您需要指定列名称并添加额外列。

请参阅以下sql中的 new_date_col1

INSERT INTO dest_table ( old_col1, old_col2, new_date_col1) 
SELECT old_col1, old_col2, getdate() FROM source_table

答案 1 :(得分:0)

假设您使用与source_table相同的字段和数据类型创建了dest_table,您只需要在插入之前向该表添加一列。

create table dest_table 
(column1 <datatype>,
...,
...,
LoadDate datetime);
GO

insert into dest_table (column1,...,LoadDate)
select 
   column1, 
   ..., 
   getdate() 
from source_table

或者,简单地

select 
   column1, 
   ..., 
   getdate() 
into dest_table 
from source_table

答案 2 :(得分:0)

您可以执行此操作,如下所示

INSERT INTO newTable (col1, col2, col3, DATE_Field)
SELECT column1, column2, column3, GETDATE() 
FROM oldTable

答案 3 :(得分:0)

如果source_tabledest_table的表格定义除了额外的TimeStamp列之外相同,您可以这样做:

INSERT INTO dest_table 
SELECT *,MONTH(GETDATE()) 
FROM source_table

否则,您需要指定映射关系,例如:

INSERT INTO dest_table (col1,col2...,Date_Column) 
SELECT col3,col4...,MONTH(GETDATE()) 
FROM source_table