osql,isql和sqlcmd有什么区别?

时间:2008-12-03 18:45:48

标签: sql-server command-line

我有兴趣为SQL Server使用某种类似于Oracle SQL * Plus的命令行实用程序。 SQL Server似乎有几个选项:osql,isql和sqlcmd。但是,我不太确定使用哪一个。

他们基本上都做同样的事吗?是否有任何情况下最好使用其中一种?

4 个答案:

答案 0 :(得分:32)

使用sqlcmd--它是功能最齐全的产品。

  • sqlcmd :SQL Server的最新,最好的命令行界面。
  • isql :旧的DB-Library(本机SQL Server协议)与SQL Server进行命令行通信的方式。
  • osql :旧的基于ODBC的SQL Server命令行通信方式。

编辑:自从几年前我回复以来,时代已经发生了变化。如今,您还可以在PowerShell中使用invoke-sqlcmd cmdlet。如果您习惯使用PowerShell或计划编写任何复杂程序的脚本,请改用它。

答案 1 :(得分:9)

我不确定你问题的范围是什么,但我相信:

isql使用DB-Library与服务器通信,并且在SQL2000

之后不再包含它

osql使用ODBC与服务器进行通信,并且在SQL2005之后将不再包含

sqlcmd使用OLE DB与服务器通信,目前是推荐的命令行工具。

答案 2 :(得分:5)

如果你有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)

答案 3 :(得分:1)

有一个免费工具“ SQLS Plus”(位于http://www.memfix.com上),它与用于SQL Server的Oracle SQL Plus完全一样。适用于所有SQL Server版本。

非常灵活,具有数据格式(设置行大小,页面大小等),变量(var,&,&&),假脱机,HTML输出等-与isql,osql或sqlcmd相比,有很多新增功能