2016-04-20 14 views
0

私はこのINSERT文をmat表記で持っています。 mat表は同じデザイン(同じ列などですが、項目が異なります)です。SELECTでのINSERT INTO - 番号が一致しません

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は、列の二重の数を持っているので、それは動作しません。だから、私はSELECTINSERT INTOの特定の列を指定することができますが、75があります - それでは、より簡単で便利な方法がありますSELECTだけ75列?

​​は機能しません。助言がありますか?

+4

'select mat7。*'が動作するはずです。あなたが得たエラーは何ですか? –

+0

あなたは本当にそれらのテーブルに参加したいのですか、あるいはあなたは 'union'を意味していますか?最初にselect文を実行し、スキーマが 'mat'表に一致するかどうか確認してください –

+0

下線が赤です。列プレフィックス 'mat7'がクエリで使用されるテーブル名またはエイリアス名と一致しません。 – user1673665

答えて

0

あなたは[MAT7] specifiyする必要があります。[のCol1]、[MAT7]。[Col2に]など。

あなたはすなわち(未テスト)

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

SYSCOLUMNS かられる列を抽出でき*あなたが挿入しようとしている表の列を指定するのは、いつも最善の方法です。

関連する問題