使用SELECT INSERT INTO - 数字不匹配

时间:2016-04-20 08:30:28

标签: sql select insert

我有INSERT - 带有mat表的语句。 mat - 表具有相同的设计(相同的列等但不同的条目)。

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还有更简单的方法吗?

SELECT [mat7].*无效。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你必须指定[mat7]。[Col1],[Mat7]。[Col2]等..

您可以从syscolumns中提取列名 即(未经测试)

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

会让你开始..最好避免使用* s并指定要插入的表格上的列。