我們經(jīng)常困惑的是,我們一些常用的sql server客戶端工具,如sqlcmd, osql, isql, sql server management studio到底是用odbc, oledb還是system.data.sqlclient? 不了解工具用的是哪個provider, 則有時候會比較困惑。如: 這篇文檔講sqlcmd.exe 2012版本用的是
我們經(jīng)常困惑的是,我們一些常用的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技術(shù)的列表,僅供參考。
? |
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。