2017-01-18 132 views
0

目前,我正在插入到表具有以下前綴也manaully設置我想要什麼,在過去2列(1,GETDATE())選擇*在INSERT語句中

Insert into [Table1]   
select col1,col2,col3, 1,getdate() 
from [table2] 

問題是存在的是列的負載,並導致在SP的混亂。

我試圖重寫語句...

Insert Into [table1] 
Select * from [Table2] 

但我也需要考慮到我想手動寫入這2列..

是否有辦法這樣做?

非常感謝

+3

的可能的複製[?INSERT INTO SELECT \ *爲SQL Server,不可能,我是正確](http://stackoverflow.com/questions/26886421/insert-into-select-for-sql-server-not-possible-am-i-correct) – mortb

+0

向我們展示這兩個表的示例模式。 table1有兩個比table2多的列嗎? – GurV

+0

'... select table2。*,1,getdate()...' – jarlh

回答

0

這可能會幫助您解決問題:

Insert into [Table1]   
select col1, col2, col3, '1' as [col4] , getdate() as [col5] from [table2] 
+0

只是一個評論,不需要命名選定的列。 – jarlh

0

兩點。首先,使用insert時,你應該始終處於命名列插入的習慣:

Insert into [Table1](col1, col2, col3, col4, col5)   
    select col1, col2, col3, 1, getdate() 
    from [table2]; 

其次,你不必把getdate()在插入。讓數據庫做的工作對你有一個默認值:

create table table1 . . . 
    col5 date default getdate() 
);