从Linux访问Microsoft SQL Server有哪些方法?

cwi*_*ick 49 sql-server

我们有一台运行SQL Server 2005的Windows机器,我们需要能够从Linux机器上运行一些数据库查询.有哪些建议的方法可以做到这一点?理想情况下,我们需要一个类似于Windows上的sqlcmd的命令行实用程序.

Vin*_*vic 31

FreeTDS + unixODBCiODBC

首先安装FreeTDS,然后配置两个ODBC引擎之一以使用FreeTDS作为其ODBC驱动程序.然后使用ODBC引擎的命令行界面.

unixODBC有isql,iODBC有iodbctest

您还可以使用自己喜欢的编程语言(我已成功使用Perl,C,Python和Ruby连接到MSSQL)

我个人使用FreeTDS + iODBC:

$more /etc/freetds/freetds.conf
[10.0.1.251]
    host = 10.0.1.251
    port = 1433
    tds version = 8.0

$ more /etc/odbc.ini
[ACCT]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = ODBC to SQLServer via FreeTDS
Trace = No
Servername = 10.0.1.251
Database = accounts_ver8
Run Code Online (Sandbox Code Playgroud)

  • 您有机会更新此答案以反映更新版本的代码和软件包吗? (2认同)

Muh*_*han 17

sql-cli是sql server的基于nodejs的跨平台命令行界面.您可以通过npm https://www.npmjs.org/package/sql-cli安装它

它可以连接到内部部署和sql azure实例.

  • 谢谢!**这应该是公认的答案!**这是迄今为止用于`mysql` CLI客户端的人的最佳解决方案. (2认同)

Mat*_*ish 10

sqsh(http://www.sqsh.org/ )+ freetds(http://www.freetds.org)

sqsh主要是Sybase SQL Server(现在是ASE)的isql替代品,但它适用于连接到SQL Server(假设您使用freetds).

要编译,只需将$ SYBASE指向freetds install,它就可以从那里开始工作.我整天都在Mac上使用它.

sqsh的最佳部分是高级功能,例如死简单服务器链接(无需在SQL Server中设置链接服务器),流控制和循环(不再连接字符串和执行动态SQL),以及不可见的批量复制/加载.

任何使用任何其他命令行工具的人都疯了!:)


Con*_*tin 6

pymssql是一个基于FreeTDS的DB-API Python模块.它对我有用.如果需要,创建一些辅助函数,并从Python shell中使用它.


Ste*_*eim 5

Mono包含一个ADO.NET提供程序,应该为您执行此操作.我不知道是否有一个命令行实用程序,但如果没有,你肯定可以包装一些C#来进行查询.

请访问http://www.mono-project.com/TDS_Providershttp://www.mono-project.com/SQLClient