.......
 exec('     insert  into  ele_dss..t_2  
           select  *  from '+@l_server+'.forecast..t_2  
                where  f_Year='''+Convert(char(10),@time_data,120) +'''')

解决方案 »

  1.   

    ???
    delete  from  ele_dss..t_2  where  f_Year=@time_data  
          EXEC  sp_addlinkedserver  @l_server,'','MSDASQL',  NULL,  NULL,  
                'Driver={SQL  Server};Server=@l_server;UID=sa;PWD=sa'  
          EXEC  sp_addlinkedsrvlogin  @l_server,'False','sa','sa','sa'  
     
          insert  into  ele_dss..t_2  
               select  *  from  forecast..t_2  
                    where  f_Year=@time_data  
    个人观点,最好不要在SP中动态运行SP_ADDLINKEDSERVER,开销很多,也不方便,你可以在APP运行是建立LINKEDSERVER,然后在SP中直接调用即可,也不会出现你这样的问题。
      

  2.   

    CREATE  PROCEDURE  dts_frommis      
               @time_data  char(4),    
               @l_server  char(20)  
    AS  
     
          delete  from  ele_dss..t_2  where  f_Year=@time_data  
          exec('EXEC  sp_addlinkedserver  '''+@l_server+''','''',''MSDASQL'',  NULL,  NULL,  
                ''Driver={SQL  Server};Server='+@l_server+';UID=sa;PWD=sa''')
          EXEC  sp_addlinkedsrvlogin  @l_server,'False','sa','sa','sa'  
     
          declare @a varchar(8000)
          set @a='insert  into  ele_dss.dbo.t_2  
               select  *  from  '+@l_server+'.forecast.dbo.t_2  
                    where  f_Year='''+Convert(char(10),@time_data,120)+''''
    exec(@a)
    GO
      

  3.   

    sp_droplinkedsrvlogin  @rmtsrvname = '192.168.18.37', @locallogin = 'sa'
    go
    sp_dropserver '192.168.18.37'
    GO
      

  4.   

    远程登录不是用 sp_helpremotelogin [ [ @remoteserver = ] 'remoteserver' ]
        [ , [ @remotename = ] 'remote_name' ]  吗?
    链接服务器和远程服务器的使用的具体步骤和要点是什么?
      

  5.   

    使用 sp_helpserver 列出在本地服务器上定义的远程服务器的名称。建议建立连接服务器的过程和使用连接服务器的过程分开为两个过程
      

  6.   

    ok!搞定!
    to leimin(黄山光明顶):你的意见值得借鉴,你上次给别人的解答对我很有帮助
    to pengdali(大力 V2.0) :我看过你的一些解答,仔细研究,觉得很好。我的qq是9517781,能不能加我以便以后能多向你们请教一些问题??