日期:2014-05-18  浏览次数:20555 次

求一sql語句
我想要把EXCEL中的資料導入到SQLSERVER   中﹐且有些資料在SQLSERVER已經存在﹐我想把在SQLSERVER中不存在的EXCEL中的資料導進SQLSERVER﹐不想使用游標的方式﹐
SQLSERVER中相應的表主鍵為﹕MG001+MG002+MG003,如果說主鍵只有一個字段是容易﹐而多個的情況我真想不出怎么寫這sql語句。總不能如下吧﹕
insert   into     join   jian.DSCSYS.dbo.COPMG     (G001,MG002,MG003,MG004,MG005,MG006   )
select   a.G001,a.G002,a.G003,a.G004,a.G005,a.G006  
  from   openrowset( 'microsoft.jet.oledb.4.0 ', 'Excel   8.0;HDR=yes;
Database=C:\Documents   and   Settings\hou\桌面\xujing.xls; ',
'select     MG001,MG002,MG003,MG004,MG005,MG006     from   [Sheet1$] ')       a
inner   join   jian.DSCSYS.dbo.COPMG     on    
a.MG001 <> b.MG001  
AND   a.MG002 <> b.MG002  
and   a.MG003 <> b.MG003
我感覺這個語句不對﹐但說不出哪里不對。如果要求兩者中存在共同的資料時﹐那這個語句只要改 <> 為=   肯定是對的。
請各位大俠幫忙﹐不勝感激。
注﹕不要使用游標

------解决方案--------------------
insert into join jian.DSCSYS.dbo.COPMG (G001,MG002,MG003,MG004,MG005,MG006 )
select a.G001,a.G002,a.G003,a.G004,a.G005,a.G006
from openrowset( 'microsoft.jet.oledb.4.0 ', 'Excel 8.0;HDR=yes;
Database=C:\Documents and Settings\hou\桌面\xujing.xls; ',
'select MG001,MG002,MG003,MG004,MG005,MG006 from [Sheet1$] ') a
where not exists (select 1 from jian.DSCSYS.dbo.COPMG b where
a.MG001=b.MG001
AND a.MG002=b.MG002
and a.MG003=b.MG003
)