我需要將插入(我將恢復到我的source_database中的每月備份)到dest_database中,並添加一個新的DATE字段,以指出哪個月是數據從。所以最後一切都將在dest_database中,DATE字段指定它屬於哪個月份。從現有表插入到新表中並添加新字段
我該怎麼做?
INSERT INTO dest_table
(SELECT *
FROM source_table)
我需要將插入(我將恢復到我的source_database中的每月備份)到dest_database中,並添加一個新的DATE字段,以指出哪個月是數據從。所以最後一切都將在dest_database中,DATE字段指定它屬於哪個月份。從現有表插入到新表中並添加新字段
我該怎麼做?
INSERT INTO dest_table
(SELECT *
FROM source_table)
您需要指定列名並添加額外的列。
請參閱下面的sql中的new_date_col1。
INSERT INTO dest_table (old_col1, old_col2, new_date_col1)
SELECT old_col1, old_col2, getdate() FROM source_table
這是正確的答案 –
這個工作。謝謝! –
假設你已經創建了dest_table具有相同的字段和數據類型爲source_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
你可以做到這一點如下圖所示
INSERT INTO newTable (col1, col2, col3, DATE_Field)
SELECT column1, column2, column3, GETDATE()
FROM oldTable
儘管OP確實表示他們想要它屬於哪個月,但我會提醒注意,因爲如果數據跨越多年,您將不知道該月份屬於哪一年。 – scsimon
我更新了我的答案。你是對的! –
如果source_table
和dest_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
使用一個月(GETDATE())來獲取月份 – Nithin