在SQL中使用链接服务器取数据小结

         这阵子做一个需要从另外一个服务器去数据的项目。在网上问了一下朋友,有的说使用复制数据库,任何在做同步。考虑到取得数据不是很多,而且对数据库的同步不是很熟。所以只好用连接服务器来做。
         第一步就是建立连接服务器。两个存储过程完成这一步。
None.gif EXEC  sp_addlinkedserver  @server = ' PCP ' @srvproduct = '' , @provider = ' SQLOLEDB ' , @datasrc = ' Remove Server ' , @catalog = ' DbTest '
None.gif
None.gif
exec  sp_addlinkedsrvlogin  @rmtsrvname = ' PCP ' , @useself = ' false ' , @locallogin = ' user1 ' , @rmtuser = ' user2 '

        第二步就是把数据查询出来,这一步花了我很多时间,因为查询时的语句都想这样的: select PCP.数据库名.dbo.表名.字段名 from PCP.数据库名.dbo.表名.字段名。 因为字段名前缀个数大于3,所以要不字段的前缀都去掉,而表名的前缀都保留。好在我的表都没有重名的字段,不然就麻烦了。好,数据都出来了,不过数度有点慢,不知道各位怎么处理速度问题。
     
        最后我是把这些查询语句做成存储过程,但这下又出问题了,语法检查通过了,但保存的时候提示要设置ANSI_NULLS ,ANSI_WARNINGS。于是我找了些资料,知道ANSI_NULLS 要在存储过程的第一行设定,ANSI_WARNINGS要在AS后面设置。在测试的机器上设好了,没问题,可以保存,重新打开一看,ANSI_NULLS 不见,但存储过程可以运行。不知道这个ANSI_NULLS 是怎么消失的。好,先不管这个问题,赶紧到真的服务器设定,在检查语法时却提示存储过程的第一行要为 Create PROCEDURE 。折腾了很久没办法。只好把测试上的存储过程生产SQL脚本。任何再导入真的数据库中。最后总算OK了。

         就这个问题,花了我差不多一天的数据,所以现在记录下来,给其他人做个参考,少走点弯路。

转载于:https://www.cnblogs.com/weisai/archive/2006/10/19/533727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值