你既然能在batch处理里面连上其它数据库当然可以先读到一张临时表里面
如果这个临时表里的数据需要用很多次到是很合理的
可是你的数据量太大怎么办?如果只用1次或者2次呢?这样做只会更慢。根据你的业务逻辑来决定了用linkServer直接访问其实并不慢的

解决方案 »

  1.   

    数据量是不定的从0到几万都有可能,存储过程里面用opendatasource 可以直接访问其他数据库select * into #TEST from OPENDATASOURCE(   
                        'SQLOLEDB','Data Source=ip;User ID=user;Password=password'
                        ).db.user.table但是ip,user等怎么用存储过程的参数代替呢,比如select * into #TEST from OPENDATASOURCE(   
                        'SQLOLEDB',@connectstr
                        ).db.user.table
      

  2.   

    你可以用复制的方式把一个数据库的内容copy到另一个数据库
      

  3.   

    但是ip,user等怎么用存储过程的参数代替呢?
    -----------------------------------------
    不懂你为什么一定要用OPENDATASOURCE,实际上OPENDATASOURCE并不安全,而且没有linkServer快,而且用户名密码等敏感数据都包含在里面别人无法看到
    写起来也很方便的