有关“链接数据库”的一些问题

1324人阅读 评论(0) 收藏 举报

今天定义了一个“链接数据库”,它主要用来在本地数据库上创建一条对于远端数据库的“链接”,使用时就像操作本地数据表(只能操作表和视表)一样,给编程工作带来了极大的便利和灵活。

在使用时遇到一些问题,特记录下来:

1、可以利用系统存储过程或企业管理器来创建,应该都比较简单,但我在做的时候却搞了半天也不成功,急得又是上网搜索,又是问网友,最后发现错误的原因其实很郁闷:在设置数据库连接时把连接字串写错了!

2、终于成功创建了一个“链接数据库”,挺开心的,不过在使用时又碰到了麻烦:我在查询分析器中可以顺利的时行查询甚至更新操作,但当我把同样的语句写入存储过程时,一保存就出错误提示:错误7405:异常查询要求为连接设置ANSI_NULLS,ANSI_WARNINGS选项……折腾半天,后来在网上找到答案:()

请在查询分析器中创建这个存储过程,以后这个存储过程在企业管理和查询分析器都能修改了。 
对于存储过程,SQL  Server  使用最初创建存储过程时的  SET  ANSI_NULLS  设置值。无论随后何时执行存储过程,SET  ANSI_NULLS  的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用  SET  ANSI_NULLS  时,其设置不更改。   
在执行分布式查询时应将  SET  ANSI_NULLS  设置为  ON。   
在执行分布式查询时应将  ANSI_WARNINGS  设置为  ON。   
企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。

3、尝试利用链接数据库进行分布式事务处理失败:我原打算利用链接数据库做一个分布式事务处理,即在一个事务中完成对不同数据库(这里是两个sqlserver),好不容易写好了存储过程,在运行时却报错,错误号是7391,我在网上也找到了微软针对这一错误的解决方案(http://support.microsoft.com/default.aspx?scid=kb;zh-cn;329332#top),但尝试后仍然不能成功。最后只好放弃了这种做法,另外采取了其它的解决方案。

通过这两天对链接数据库的使用,感觉其在用于异类数据库时可能会带来一些好处,但也只限于对表和视图的操作,并无法满足我对于系统的要求。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1422694次
    • 积分:22886
    • 等级:
    • 排名:第297名
    • 原创:754篇
    • 转载:11篇
    • 译文:0篇
    • 评论:1489条
    最新评论