2017-01-18 3 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-in-select-for-sql-server-not-possible-am-i-correct) – mortb

+0

Покажите нам пример схемы из двух таблиц. Имеет ли таблица1 два дополнительных столбца, чем таблица2? – 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() 
);