SQL Server客户端工具到底使用的是哪个provider呢?
我们经常困惑的是,我们一些常用的SQL Server客户端工具,如SQLCMD, OSQL, ISQL, SQL Server Management Studio到底是用ODBC, OLEDB还是System.Data.Sqlclient? 不了解工具用的是哪个provider, 则有时候会比较困惑。如: 这篇文档讲sqlcmd.exe 2012版本用的是
我们经常困惑的是,我们一些常用的SQL Server客户端工具,如SQLCMD, OSQL, ISQL, SQL Server Management Studio到底是用ODBC, OLEDB还是System.Data.Sqlclient? 不了解工具用的是哪个provider, 则有时候会比较困惑。如:
这篇文档讲sqlcmd.exe 2012版本用的是OLEDB
另外篇文档讲sqlcmd.exe 2012版本用的事ODBC
哪篇MSDN文档是对的,哪篇是错的?
通过对各个客户端工具进行debugging,我们能比较容易的了解到每个工具使用了provider。下面是不同的工具,在不同版本下使用Data Access技术的列表,仅供参考。
Isql.exe |
Osql.exe |
Sqlcmd |
QA |
Sqlwb.exe |
Ssms.exe |
|
SQL Server 2000 |
DB-Library Ntwdblib.DLL |
ODBC sqlsrv32.dll |
N.A. |
ODBC Sqlsrv32.dll |
N.A. |
N.A. |
SQL Server 2005 |
N.A. |
ODBC Sqlncli.dll |
OLEDB Sqlncli.dll |
N.A. |
System.Data. .NET Framework |
N.A. |
SQL Server 2008 |
N.A. |
ODBC Sqlncli10.dll |
OLEDB Sqlncli10.dll |
N.A. |
N.A. |
System.Data. .NET Framework |
SQL Server 2008 R2 |
N.A. |
ODBC Sqlncli10.dll |
OLEDB Sqlncli10.dll |
N.A. |
N.A. |
System.Data. .NET Framework |
SQL Server 2012 |
N.A. |
ODBC Sqlncli11.dll |
ODBC Sqlncli11.dll |
N.A. |
N.A. |
System.Data. .NET Framework 4.0 |
比较值得注意的是,从SQL Server 2008到SQL Server 2012, SQLCMD.EXE从OLEDB迁移到了ODBC。