从linux终端执行ms sql server查询

Jav*_* Mr 4 freetds sqsh

我需要从linux终端查询MS SQL Server数据库.搜索网站和这个网站我找到了freetds,然后是sqsh.我已经安装了它们并且似乎连接到服务器但我无法让它执行查询,我肯定做错了什么.

我将freetds配置为:

[MSSql]
        host = 192.168.1.4
        port = 1433
        tds version = 7.0
Run Code Online (Sandbox Code Playgroud)

数据库服务器是Sql Server 2008 r2.

连接时我使用以下命令:

sqsh -S MSSql -U sa -P sa -D databasename
Run Code Online (Sandbox Code Playgroud)

这给了我一个提示:

sqsh-2.1.7 Copyright (C) 1995-2001 Scott C. Gray
Portions Copyright (C) 2004-2010 Michael Peppler
This is free software with ABSOLUTELY NO WARRANTY
For more information type '\warranty'
1>
Run Code Online (Sandbox Code Playgroud)

然后我尝试输入如下查询:

1> select * from C_PROPS;
Run Code Online (Sandbox Code Playgroud)

但没有任何反应.我做错了什么?只需要简单的选择和更新.

knb*_*knb 5

我认为 semicolon_hack变量没有设置.

你需要像这样编写命令

select * from C_PROPS
go
Run Code Online (Sandbox Code Playgroud)

或者,在sqsh会话开始时

\set semicolon_hack=on
go
Run Code Online (Sandbox Code Playgroud)

现在你可以做到

select * from C_PROPS;
Run Code Online (Sandbox Code Playgroud)

或者,在您的主目录中创建一个.sqshrc并插入此代码段

#
# $semicolon_hack : This turns on the ability to use a semicolon as
#             a sort of in-line go.  It is kind of hacky but seems
#             to work pretty well.
#
\set semicolon_hack=on
Run Code Online (Sandbox Code Playgroud)