我要采取什么步骤?在使用 Emacs 时,有任何需要注意的问题或增强特定于 SQL Server 的 IDE 体验的技巧吗?
4 回答
连接
从 Emacs 连接到 SQL Server 数据库实例:
M-x sql-ms RET
M-x sql-mode
系统将提示您输入标准连接信息,具体如下:
- 用户
- 密码
- 服务器
- 数据库
对于 SQL Server 身份验证,键入必要的用户和密码信息。但是,如果通过 Windows 身份验证连接,则对用户名和密码都按 RETURN,将其留空。
查看输出结果
请注意,要查看 *SQL* 缓冲区中任何输出结果的文本,应该在某个时候调用“go”语句。有几种方法可以做到这一点。
例如,这条 sql 语句将执行,但不会以当前格式在 *SQL* 缓冲区中显示任何结果文本:
select 'foo' as bar
但是,如果在末尾附加“go”:
select 'foo' as bar
go
以下将显示在 *SQL* 缓冲区中:
bar
-----
foo
(1 row affected)
或者,如果您不想让“go”语句在 SQL 脚本的文本中乱扔垃圾,那么动态调用“go”以查看自上次将上一个“go”语句发送到 sql 进程以来的所有输出结果:
C-c C-s go RET
如果您需要查看最初可能未显示在 *SQL* 缓冲区中的任何错误消息,这将很有帮助。
有时,emacs 的 sql-ms 显示很糟糕,因为显示的某些列太宽而无法阅读。
这里有一些针对糟糕输出体验的技巧。
1.
M-x toggle-truncate-lines
切换截断行可以提高一些可读性。
2.
select left(columnName, 25) from table
这会将列宽截断为 25 个字符。这对我来说很完美。
来源在这里: http ://bloggingmath.wordpress.com/2011/02/03/using-emacs-as-your-sql-interface/
作者在尝试连接到 SQL 服务器时提到了“陷阱”。
当尝试连接到mysql服务器时,正如投票最多的答案所暗示的那样M-x sql-mysql
,我发现我不断得到
找不到 SQL 程序“mysql”
按照这个关于 emacs, sql and Macs 的 SO question的建议,我设置了以下值:
(setq sql-mysql-program "/usr/local/mysql/bin/mysql")
这是我本地mysql二进制文件的位置/路径。
不知道为什么在我看过的任何其他教程中都没有提到这个变量,所以我把它贴在这里,作为前面提到的连接到mysql服务器时的“陷阱”。