我有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
- 语句有两倍的列数。所以也许我可以在SELECT
和INSERT INTO
中指定特定的列,但是有75个 - 那么只有75列的SELECT
还有更简单的方法吗?
SELECT [mat7].*
无效。有什么建议吗?
答案 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并指定要插入的表格上的列。