选择*在插入语句中

时间:2017-01-18 10:45:54

标签: sql sql-server sql-insert

我正在插入一个带有以下前缀的表,但也会在最后2列(1,getdate())中手动设置我想要的内容

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

问题是有很多列并导致SP混乱。

我试图用......重写声明

 Insert Into [table1]
 Select * from [Table2]

但我还需要考虑我想手动写入这两列......

有没有办法做到这一点?

非常感谢

2 个答案:

答案 0 :(得分:0)

这可能会解决您的问题:

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

答案 1 :(得分: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()
);