在创建SQL Server的链接服务器时,可以看到有如下几种访问接口,其中我们常用的只有1、3、4、6。其中4是安装Oracle客户端才会出现的接口,3、6是由于我电脑上装了2008R2和2012两个版本的数据库所致。

SQL Server 提供的各种数据访问接口

3、6可以看做一样的接口,因此我们只讨论1、3、4。此外不要忽略了上边还有个SQL Server的服务器类型,这个选项也对应着一个访问接口。

这四个访问接口分别对应:

  • SQL Server--C:\Windows\System32\sqlsrv32.dll
  • 1--OLEDB提供的对SQL Server的访问接口,OLEDB是一个基于COM+组件服务的data access provider,或者说一个数据访问的API,从脚本来看使用的是SQLNCLI接口,并非sqlncli11,猜测OLEDB可能是存在选择机制的。
  • 3--SQL Server客户端提供的访问接口,C:\Windows\System32\sqlncli11.dll
  • 4--Oracle提供的的访问接口,在创建到Oracle的DBLINK时使用

至于OLEDB与ODBC的区别,我认为stackoverflow上一篇讨论文章很好的解释了两者的差别,鉴于各种论点不是很统一因此贴出链接:

what is the difference between OLE DB and ODBC data sources?

相关文章: