try:
DECLARE   @strSQL   NVARCHAR(1000)
DECLARE   @strPointName   NVARCHAR(256)
DECLARE   @CountPartNum   INT
                
set   @strPointName   ='RAILWAY_POINT'
set   @CountPartNum=100000
set   @strSQL=' Insert into   RailPoint(PartID,PointID,X,Y)    
 select   PartRecordID + '+ cast(@CountPartNum as varchar)+',PointID,PadfX,PadfY from   
OpenRowset(''MSDASQL.1'',''Driver={Microsoft  Text   Driver   (*.txt;   *.csv)};DefaultDir=e:\dbf\;User   ID=Admin;Password=;Extensions=csv;'',''select   *     from   "'+@strPointName+'.csv"'')'                               
exec(@strSQL) 

解决方案 »

  1.   

    --try:
    DECLARE   @strSQL   NVARCHAR(1000)
    DECLARE   @strPointName   NVARCHAR(256)
    DECLARE   @CountPartNum   INT
                    
    set   @strPointName   ='RAILWAY_POINT'
    set   @CountPartNum=100000
    set   @strSQL=' Insert into   RailPoint(PartID,PointID,X,Y)    
    select   PartRecordID + '+ cast(@CountPartNum as varchar)+',PointID,PadfX,PadfY from   
    OpenRowset(''MSDASQL.1''
    ,''Driver={Microsoft  Text   Driver(*.txt;   *.csv)};DefaultDir=e:\dbf\
    ;User   ID=Admin;Password=;Extensions=csv;''
    ,''select   *     from   '+@strPointName+'.csv'') T'                               
    exec(@strSQL) 
      

  2.   

    set   @strSQL     =     '   Insert   into   RailPoint(PartID,PointID,X,Y)     select   PartRecordID'+cast(@CountPartNum as varchar)+',PointID,PadfX,PadfY     from   OpenRowset(''MSDASQL.1'',   ''Driver={Microsoft   Text   Driver   (*.txt;   *.csv)};DefaultDir=e:\dbf\;User   ID=Admin;Password=;Extensions=csv;'',''select   *     from   "'+@strPointName+'.csv"'')'       
      

  3.   

    set       @strSQL           =           '       Insert       into       RailPoint(PartID,PointID,X,Y)           select       PartRecordID+'+cast(@CountPartNum   as   varchar)+',PointID,PadfX,PadfY           from       OpenRowset(''MSDASQL.1'',       ''Driver={Microsoft       Text       Driver       (*.txt;       *.csv)};DefaultDir=e:\dbf\;User       ID=Admin;Password=;Extensions=csv;'',''select       *           from       "'+@strPointName+'.csv"'')'    刚才少了一个+号
      

  4.   

    @CountPartNum 用cast(@CountPartNum as varchar)来做连接啊
    'select   PartRecordID+'+ cast(@CountPartNum as varchar)+',PointID,PadfX,PadfY from ........................   
      

  5.   

    我加上+'+   cast(@CountPartNum   as   varchar)+' 试了一下 发现还是有错误 如下提示:
    DECLARE @strSQL NVARCHAR(256);
    DECLARE @strPointName NVARCHAR(256);
    DECLARE @CountPartNum INT;
            
    set @strPointName ='RAILWAY_POINT';
    set @CountPartNum=100000;
    set @strSQL  =  'Insert into RailPoint(PartID,PointID,X,Y)  select PartRecordID+'+ cast(@CountPartNum as varchar)+',PointID,PadfX,PadfY  from OpenRowset(''MSDASQL.1'', ''Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=e:\dbf\;User ID=Admin;Password=;Extensions=csv;'',''select *  from "'+@strPointName+'.csv"'')'               
    exec(@strSQL)服务器: 消息 105,级别 15,状态 1,行 1
    字符串 'select *  from "RAILWAY_POIN' 之前有未闭合的引号。
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'select *  from "RAILWAY_POIN' 附近有语法错误。
      

  6.   

    DECLARE   @strSQL   NVARCHAR(2000); 
    DECLARE   @strPointName   NVARCHAR(256); 
    DECLARE   @CountPartNum   INT; 
                    
    set   @strPointName   ='RAILWAY_POINT'; 
    set   @CountPartNum=100000; 
    set   @strSQL     =     'Insert   into   RailPoint(PartID,PointID,X,Y)     select   PartRecordID+'+   cast(@CountPartNum   as   varchar)+',PointID,PadfX,PadfY     from   OpenRowset(''MSDASQL.1'',   ''Driver={Microsoft   Text   Driver   (*.txt;   *.csv)};DefaultDir=e:\dbf\;User   ID=Admin;Password=;Extensions=csv;'',''select   *     from   "'+@strPointName+'.csv"'')'                               
    exec(@strSQL)