我有兴趣为SQL Server使用某种类似于Oracle SQL*Plus的命令行实用程序.SQL Server似乎有几个选项:osql,isql和sqlcmd.但是,我不太确定使用哪一个.
他们都基本上做同样的事情吗?是否有任何情况下最好使用其中一种?
使用sqlcmd--它是功能最齐全的产品.
sqlcmd:SQL Server的最新,最狂热的命令行界面.
isql:与SQL Server进行命令行通信的较旧的DB-Library(本机SQL Server协议)方式.
osql:与SQL Server进行命令行通信的基于ODBC的旧方法.
编辑: 自从几年前我回答这个问题以来,时代已经发生了变化.现在,您还可以在PowerShell中使用invoke-sqlcmd cmdlet.如果您习惯使用PowerShell或计划编写任何复杂程序的脚本,请改用它.
我不确定你问题的范围是什么,但我相信:
isql使用DB-Library与服务器通信,在SQL2000之后不再包含它
osql使用ODBC与服务器进行通信,SQL2005之后将不再包含它
sqlcmd使用OLE DB与服务器通信,目前是推荐的命令行工具.
如果您有SQL SERVER 2005,最好使用SQLCMD而不是OSQL或ISQL,否则使用OSQL而不是ISQL.
微软之前宣布ISQL即将退出.果然,SQL Server 2005 RTM中不包含ISQL.OSQL最终也将逐步淘汰,尽管它仍然包含在SQL Server 2005二进制安装中.考虑到历史SQL Server发布周期,OSQL可能会在2010年向我们提出申请.
SQLCMD具有以下许多优点:
1)表现明智
2)SQLCMD支持参数化变量
3)SQLCMD支持自定义编辑器
4):XML [ONOFF]
5):错误STDERRSTDOUT
6):Perftrace STDERRSTDOUT
7)远程专用管理连接(DAC)