2016-04-20 58 views
0

我有這INSERT -statement與mat -table。 mat - 表具有相同的設計(相同的列等,但不同的條目)。INSERT INTO with SELECT - 數字不匹配

insert into [tmp].[dbo].[mat] 
select * 
from [mat7].[dbo].[mat] mat7 
join [mat6].[dbo].[mat] mat6 on mat7.myid = mat6.myid and mat7.matnumber <> mat6.matnumber 

但它不工作,因爲SELECT語句來有柱的雙計數。因此,也許我可以在SELECTINSERT INTO中指定具體的列,但有75個 - 那麼是否有更容易和更短的方法來只有75列的SELECT

​​不起作用。有什麼建議麼?

+4

'select mat7。*'應該有效。你得到的錯誤是什麼? –

+0

你確定要加入這些表嗎?或者你的意思是'union'?請首先嚐試執行select語句,並檢查模式是否與'mat'表 –

+0

紅色下劃線相符。列前綴'mat7'與查詢中使用的表名或別名不匹配。 – user1673665

回答

0

你將不得不specifiy [mat7]。[Col1中],[Mat7] [col2的]等。

你可以提取syscolumns中的COLUMNNAMES 即(未經測試)

Declare @cols varchar(max) 
Select @Cols = @cols +',[Mat7].'+Name from syscolumns where  
object_id=object_id('mat') 
select @cols 

會讓你開始。總是最好避免* s並指定要插入的表格中的列。