如何从Mac OS X终端使用MS SQL Server?

Kev*_*ner 13 sql-server macos terminal command-line command-line-interface

我使用Mac开发Web应用程序.我们的运行时是Java,我们的Web服务器是Jetty,我们的IDE是Eclipse.所以我们的整个堆栈可以在Mac和Windows本地使用...除了我们的数据库,它是MS SQL Server(根据应用程序从2000到2008不等).我想要一个用于MS SQL Server的Unix命令行客户端.

我不喜欢SQL Server的任何OS X GUI客户端 - 我觉得它们很乏味而且不像Mac一样 - 所以目前我在Windows XP上通过VMWare Fusion使用SQL Server 2008 Management Studio.但是启动和退出仍然是一个巨大的痛苦,它在运行时会占用我的RAM,并且每次使用它时都会通过更改磁盘上的几个2GB文件来中毒我的Time Machine备份.

我喜欢从命令行使用MySQL的方式,因此这似乎是快速访问我的数据库并调查错误或添加一些测试数据的好方法.如果只有我可以这样使用SQL Server!如果没有使用直接JDBC实现命令行客户端,那么还有什么可以实现这一点吗?

dco*_*ing 9

这个2014年推出的开源节点应用程序sql-cli为Mac OS X和其他桌面提供了一个有用的命令行控制台.


che*_*hes 7

Microsoft现在为SQL Server提供OS X命令行工具的二进制文件,包括sqlcmd和第一方ODBC驱动程序.理论上,如果Mac配置了相应的Kerberos,这应该支持连接Windows身份验证 - 这是该sql-cli工具不太可能提供的.

这些作为Homebrew包分发:

$ brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
$ brew update
$ ACCEPT_EULA=y brew install --no-sandbox msodbcsql mssql-tools
Run Code Online (Sandbox Code Playgroud)

将OS X主机作为客户端连接到在Docker中运行的 SQL Server :

$ sqlcmd -S 127.0.0.1 -U sa -P 'yourStrong(!)Password'
1> SELECT @@VERSION AS 'SQL Server Version'
2> GO
SELECT @@VERSION AS 'SQL Server Version'

SQL Server Version
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
    Aug 22 2017 17:04:49
    Copyright (C) 2017 Microsoft Corporation
    Developer Edition (64-bit) on Linux (Ubuntu 16.04.3 LTS)

(1 rows affected)
1> quit
Run Code Online (Sandbox Code Playgroud)

您可以在~/.odbc.ini以下位置配置DSN :

# Give -D to connect using a DSN:
# sqlcmd -S DockerMS -D -U user -P password

[DockerMS]
Driver = ODBC Driver 13 for SQL Server
Server = 127.0.0.1,1433
Database = YourDefaultDB
Run Code Online (Sandbox Code Playgroud)

其中,Driver设置在安装过程中使用的unixODBC注册的名称相匹配,见odbcinst -q -d.


gbn*_*gbn 1

免费、开源、基于 Java:SQuirreL

您可能不会像使用 MySQL 或 Oracle 那样获得基于命令行的 SQL Server 工具。几乎您需要执行的每个命令和操作都是SQL 命令:您只需要一个 SQL 客户端