Skip to content

lsp-mode mssql client#

Emacs client for sqltoolsservice (port of vscode-mssql)



Melpa (TBD)#


Install lsp-mode and lsp-treemacs clone the repo and add the following lines in your config:

(add-to-load-path ".../lsp-mssql/")
(require 'lsp-mssql)
(add-hook 'sql-mode-hook 'lsp)


Confgure the connections.

(setq lsp-mssql-connections
      [(:server "localhost"
                :database ""
                :user "SA"
                :password "demoPWD2")])

Open a *.sql file and do M-x lsp. On the first run, it will ask you whether to install the language server. Then when you are in the sql buffer do M-x lsp-mssql-connect which will ask you to select connection. After the connection is established the current buffer will be associated with the SQL Server and the completion and the query exection will be performed against that server.


  • Editor
    • lsp-mssql-connect - connect the editor to MSSQL server.
    • lsp-mssql-disconnect - disconnect the editor MSSQL server.
    • lsp-mssql-execute-buffer - execute current buffer
    • lsp-mssql-execute-region - execute selected region.
  • MSSQL Object Explorer
    • lsp-mssql-object-explorer - display MSSQL object explorer to the right.
    • lsp-mssql-object-explorer-connect - connect the connection under point. Bound to C in the object explorer.
    • lsp-mssql-object-explorer-refresh - refresh the node. Bound to R in the object explorer.

Run mssql in docker#

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=demoPWD2" \
  -p 1433:1433 --name sql1 \


snippets directory contains the snippets from vscode-mssql.

(add-to-list 'yas-snippets-dir "path to stippets dir.")


  • Implement disconnect.
  • Implement cancel query
  • Provide options to customize the output

Last update: September 9, 2020