与FreeTDS一起使用Sqsh的优点是什么?

新手问题在这里:我有FreeTDS的工作和查询微软SQL服务器2008年R2分贝,从薄荷Linux虚拟机,阅读跨networking,主要是stackoverflow,这是提到,我应该使用sqsh也与FreeTDS , SQSH和FreeTDS ,我不明白是什么sqsh,除了是cli的某种types,我猜,增加了,因为我可以使用FreeTDS来访问数据库..任何信息来清除这一点,将不胜感激。

以前我用过很多sqsh。 这真的很有帮助。

如果你已经使用了sybase / mSserver isql,你会知道这是一个真正的痛苦。 对cmd行编辑和历史没有真正的支持。 最初创建SQSH是为了提供一个类似于shell的cmd行环境来与数据库进行交互。 使用它很容易从数据库中提取数据并保存到文件中。 然后您可以根据需要编辑该文件,并使用bcp或其他将数据加载到新表中。

SQSH shell支持环境变量,文件重定向(我不记得使用输入方向internallY,但可以写

select c1, c2, c3,c7, c120 from customer > customerFile 

非常方便。

从左侧菜单中的功能链接下可以查看http://www.sqsh.org上的完整功能列表。

 Commands Variables Redirection and Pipes Aliasing Command Substitution Backgrounding & Job Control SQL Batch History Configurable Exit Status Inter-server BCP Remote Procedure Calls Semicolon "go" Simple Scripting Flow-of-Control Functions Multiple Display Styles X Windows Support Macro Pre-Processing Miscellaneous Commands 

请注意,Flow-of-control允许有一个查询返回一个多行结果集,并在每条记录上使用dowhile循环处理。 这也支持if ... elif ..fi块。 我不记得使用那些功能,但我发现了别名和env变量,并重定向节省了我的时间。

这就是说,我是一个积极的用户。 这些文档不会为您提供所有的答案,因此需要一些时间进行实验,头部划伤和审查。

除了阅读过TDS之外,我对TDS没有任何经验。 基本上,你需要回答的问题是,我的shell命令行junky,我愿意花一点时间来学习如何在基于文本的SQL客户端获得cmd-line的权力。

IHTH。

TDS(表格数据流)是Sybase和MSSQL使用的本地客户端 – 服务器通信协议,在CT_Library中是一个专有的中间件软件和实用程序。 FreeDTS是CT-Library的OpenSource等价物。 Sqsh使用CT-Library调用与服务器进行通信,并可以与Sybase CT-Library或FreeTDS建立/链接。 Sybase CT-Library仅支持TDS版本5.0及以下版本,而MSSQL现在则使用TDS版本7.0或8.0。 FreeTDS也支持这些协议版本。 所以,如果你希望sqsh能够连接到MSSQL,你将需要FreeTDS作为中间件层。 FreeTDS还附带了一些基本的实用程序,可用于连接到服务器并执行一些SQL语句(fisql,tsql)。 然而,Sqsh提供了更多的功能,就像一个真正的shell。

我使用Unix上的unixodbc和freetds以及perl的ODBC模块。 有时(很少虽然)我使用isql进行快速查询,但多数民众赞成在它。 SQSH与isql相似,具有更好的功能。 查看SQSH wiki

SQSH具有比isql更多的功能。 但是,我从来没有遇到一个用例,我不得不广泛使用isql / sqsh。 无论我有什么,我都通过perl来完成。