使用Visual Studio代码在Linux上创建和运行Transact-SQL脚本

本文介绍如何使用Visual Studio Code 的mssql扩展来在Linux中开发SQL Server数据库。

安装并启动Visual Studio代码

Visual Studio Code是支持扩展的Linux,macOS和Windows的图形代码编辑器。

  1. 在您的计算机上下载并安装Visual Studio Code。
  2. 启动Visual Studio代码。
     注意
    如果通过xrdp远程桌面会话连接时Visual Studio代码无法启动,请参阅使用XRDP连接时,VS代码无法在Ubuntu上运行。

安装mssql扩展

Visual Studio Code的mssql扩展允许您连接到SQL Server,使用Transact-SQL(T-SQL)进行查询,并查看结果。

  1. 在Visual Studio代码中,选择“ 视图” >“ 命令选项板”,或按Ctrl + Shift + P,或按F1打开命令选项板
  2. 命令选项板中,从下拉列表中选择Extensions:Install Extensions
  3. 在“ 扩展”窗格中,键入mssql
  4. 选择SQL Server(mssql)扩展,然后选择“ 安装”
  5. 安装完成后,选择“ 重新加载”以启用扩展。

创建或打开SQL文件

当语言模式设置为SQL时,mssql扩展在代码编辑器中启用mssql命令和T-SQL IntelliSense 。

  1. 选择文件 > 新建文件或按Ctrl键 + ñ。默认情况下,Visual Studio代码会打开一个新的纯文本文件。
  2. 在下方状态栏上选择“ 纯文本 ”,或按Ctrl + K > M,然后从“语言”下拉列表中选择“ SQL ”。

如果打开具有.sql文件扩展名的现有文件,则语言模式将自动设置为SQL。

连接到SQL Server

请按照以下步骤创建连接配置文件并连接到SQL Server。

 小费

您还可以在“用户设置”文件(settings.json)中创建和编辑连接配置文件。要打开设置文件,请选择文件首选项 > 设置。欲了解更多信息,请参阅管理连接配置文件。

  1. Ctrl + Shift + PF1以打开命令选项板
  2. 键入sql以显示mssql命令,或键入sqlcon,然后从下拉列表中选择MS SQL:Connect

 注意

在您执行mssql命令之前,SQL文件(例如您创建的空SQL文件)必须在代码编辑器中具有焦点。

  1. 选择“ 创建连接配置文件”以为SQL Server创建新的连接配置文件。
  2. 按照提示指定新连接配置文件的属性。指定每个值后,按Enter继续。
  1. 服务器名称或ADO连接字符串:指定SQL Server实例名称。使用localhost连接到本地计算机上的SQL Server实例。要连接到远程SQL Server,请输入目标SQL Server的名称或其IP地址。如果需要指定端口,请使用逗号将其与名称分开。例如,对于在端口1401上运行的本地服务器,请输入localhost,1401
     注意
    您也可以在此处输入数据库的ADO连接字符串,按Enter键,可选择为连接配置文件命名,然后再次按Enter键以连接并创建配置文件。
  2. 数据库名称(可选):您要使用的数据库。要创建新数据库,请不要指定数据库名称,然后按Enter继续。
  3. 身份验证类型:按Enter键选择SQL登录
  4. 用户名:输入可以访问服务器上数据库的用户的名称。
  5. 密码:输入指定用户的密码。
  6. 保存密码:按Enter选择并保存密码。选择“ 否”以在每次使用连接配置文件时提示输入密码。
  7. 配置文件名称(可选):键入连接配置文件的名称,例如localhost配置文件

选择回车后,Visual Studio代码将创建连接配置文件并连接到SQL Server。

 小费

如果连接失败,请尝试从Visual Studio代码的“ 输出”面板中的错误消息中诊断问题。要打开输出面板中,选择查看 > 输出。另请查看连接故障排除建议。

  1. 在较低状态栏中验证您的连接。

创建一个SQL数据库

  1. 在先前启动的新SQL文件中,键入sql以显示可编辑代码段的列表。
  2. 选择sqlCreateDatabase
  3. 在代码段中,替换DatabaseNameTutorialDB
    SQL复制
-- Create a new database called 'TutorialDB'
-- Connect to the 'master' database to run this snippet
USE master
GO
IF NOT EXISTS (
   SELECT name
   FROM sys.databases
   WHERE name = N'TutorialDB'
)
CREATE DATABASE [TutorialDB]
GO
  1. Ctrl + Shift + E执行Transact-SQL命令。在查询窗口中查看结果。

 小费

您可以自定义mssql命令的快捷键。请参阅自定义快捷方式。

创建一个表

  1. 删除代码编辑器窗口的内容。
  2. Ctrl + Shift + PF1以打开命令选项板
  3. 键入sql以显示mssql命令,或键入sqluse,然后选择“ MS SQL:使用数据库”命令。
  4. 选择新的TutorialDB数据库。
  5. 在代码编辑器中,键入sql以显示片段,选择sqlCreateTable,然后按Enter键
  6. 在代码段中,键入Employees作为表名称,输入dbo作为模式名称。
  7. 创建列,如以下代码所示:
    SQL复制
-- Create a new table called 'Employees' in schema 'dbo'
-- Drop the table if it already exists
IF OBJECT_ID('dbo.Employees', 'U') IS NOT NULL
DROP TABLE dbo.Employees
GO
-- Create the table in the specified schema
CREATE TABLE dbo.Employees
(
   EmployeesId        INT    NOT NULL   PRIMARY KEY, -- primary key column
   Name      [NVARCHAR](50)  NOT NULL,
   Location   [NVARCHAR](50)  NOT NULL
);
GO
  1. Ctrl + Shift + E创建表格。

插入和查询

  1. 添加以下语句以在Employees表中插入四行。
    SQL复制
-- Insert rows into table 'Employees'
INSERT INTO Employees
   ([EmployeesId],[Name],[Location])
VALUES
   ( 1, N'Jared', N'Australia'),
   ( 2, N'Nikita', N'India'),
   ( 3, N'Tom', N'Germany'),
   ( 4, N'Jake', N'United States')   
GO   
-- Query the total count of employees
SELECT COUNT(*) as EmployeeCount FROM dbo.Employees;
-- Query all employee information
SELECT e.EmployeesId, e.Name, e.Location 
FROM dbo.Employees as e
GO

 小费

键入时,使用T-SQL IntelliSense来帮助完成语句。 

vscode sqlite链接数据库 vscode运行sql_Visual

  1. Ctrl + Shift + E执行命令。两个结果集显示在“ 结果”窗口中。

查看并保存结果

  1. 选择“ 视图” >“ 编辑器布局” >“ 翻转布局”以切换到垂直或水平拆分布局。
  2. 选择“ 结果消息”面板标题以折叠和展开面板。

 小费

您可以自定义mssql扩展的默认行为。请参阅自定义扩展选项。

  1. 选择第二个结果网格上的最大化网格图标以放大这些结果。

 注意

当您的T-SQL脚本生成两个或更多结果网格时,将显示最大化图标。

  1. 右键单击网格,打开网格上下文菜单。
  2. 选择全选。
  3. 再次打开网格上下文菜单,选择另存为JSON将结果保存到.json文件。
  4. 指定JSON文件的文件名。
  5. 验证JSON文件是否在Visual Studio代码中保存并打开。

如果以后需要保存和运行SQL脚本,对于管理或更大的开发项目,请使用.sql扩展名保存脚本。

下一步

如果您不熟悉T-SQL,请参阅教程:编写Transact-SQL语句和Transact-SQL参考(数据库引擎)。

有关使用或贡献mssql扩展的更多信息,请参阅mssql扩展项目wiki。

有关使用Visual Studio代码的详细信息,请参阅Visual Studio代码文档。