我有一个带有mat-table的INSERT-statement。mat-tables具有相同的设计(相同的列等,但条目不同)。
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-statement有两倍的列数。所以也许我可以在SELECT和INSERT INTO中指定特定的列,但是有75列-那么有没有更简单、更快捷的方法来SELECT这75列呢?
SELECT [mat7].*不工作。有什么建议吗?
发布于 2016-04-20 16:38:52
您必须指定mat7.Col1、Mat7.Col2等。
您可以从syscolumn ie (未测试的)中提取列名
Declare @cols varchar(max)
Select @Cols = @cols +',[Mat7].'+Name from syscolumns where
object_id=object_id('mat')
select @cols会让你开始..。最好始终避免使用*s,并指定要插入到的表中的列。
https://stackoverflow.com/questions/36738062
复制相似问题