适用于 Visual Studio Code 的 SQL Server 扩展

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics

本文介绍如何使用 Visual Studio Code 的 mssql 扩展 (Visual Studio Code) 来处理 Windows、macOS 和 Linux 上的 SQL Server 中的数据库,以及 Azure SQL 数据库、Azure SQL 托管实例和 Azure Synapse Analytics。 适用于 Visual Studio Code 的 mssql 扩展允许你连接到 SQL Server,使用 Transact-SQL (T-SQL) 进行查询,并查看结果。

创建或打开 SQL 文件

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

  1. 选择“文件”>“新建文件”或按“Ctrl”+“N” 。 默认情况下,Visual Studio Code 将打开一个新的“纯文本”文件。

  2. 在下方状态栏上选择“纯文本”,或按“Ctrl”+“K”>“M”,然后从“语言”下拉列表中选择“SQL”

    屏幕截图,其中显示 Visual Studio Code 选择中的 SQL 语言模式。

    注意

    如果这是你第一次使用该扩展,则该扩展会在后台安装 SQL 工具服务

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

连接到 SQL Server

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

  1. 按“Ctrl”+“Shift”+“P”或“F1”打开“命令面板” 。

  2. 键入 sql 可显示 mssql 命令,或键入 sqlcon,然后从下拉列表中选择“MS SQL:连接”。

    屏幕截图,其中显示筛选了“MS SQL”命令的 Visual Studio Code 命令托盘。

    注意

    代码编辑器中的焦点须位于 SQL 文件(例如创建的空 SQL 文件),才能执行 mssql 命令。

  3. 选择“MS SQL: 管理连接配置文件”命令。

  4. 然后选择“创建”为 SQL Server 创建新的连接配置文件

  5. 按照提示为新连接配置文件指定属性。 指定每个值后,按“Enter”继续。

    连接属性 说明
    服务器名称或 ADO 连接字符串 指定 SQL Server 实例名称。 使用 localhost 连接到本地计算机上的 SQL Server 实例。 如果要连接到远程 SQL Server,请输入目标 SQL Server 的名称,或它的 IP 地址。 若要连接到 SQL Server 容器,请指定容器主机的 IP 地址。 如果需要指定端口,请使用逗号将其与名称分开。 例如,对于侦听端口 1401 的服务器,请输入 <servername or IP>,1401

    默认情况下,连接字符串使用端口 1433。 除非修改,否则 SQL Server 的默认实例使用 1433。 如果实例正在侦听 1433,则无需指定端口。
    或者,可以在此处输入数据库的 ADO 连接字符串。
    “数据库名称”(可选) 要使用的数据库。 若要连接到默认数据库,请不要在此处指定数据库名称。
    身份验证类型 选择“集成”或“SQL 登录”
    用户名 如果选择了“SQL 登录”,则输入拥有访问服务器上数据库权限的用户名
    密码 输入指定用户的密码。
    保存密码 按“Enter”选择“是”并保存密码。 选择“否”,系统将在每次使用连接配置文件时提示输入密码
    “配置文件名称”(可选) 键入连接配置文件的名称,例如 localhost 配置文件

    输入所有值并选择“Enter”后,Visual Studio Code 将创建连接配置文件并连接到 SQL Server

    提示

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

  6. 在下方的状态栏中验证连接。

    屏幕截图,其中显示 Visual Studio Code 中的连接状态。

作为前面步骤的替代方法,还可以在“用户设置”文件 (settings.json) 中创建和编辑连接配置文件。 若要打开设置文件,请选择“文件”>“首选项”>“设置” 。 有关详细信息,请参阅管理连接配置文件

加密和信任服务器证书

从 VS Code v1.17.0 的 mssql 扩展开始:

  • 对于 MSSQL 提供程序连接,默认启用 Encrypt 属性(设置为 True
  • 必须使用由受信任的根证书颁发机构签名的 TLS 证书来配置 SQL Server

此外,如果初始连接尝试失败,并启用了加密(默认),mssql 扩展将提供通知提示,其中包含在启用信任服务器证书的情况下尝试连接的选项。

可在用户设置文件 (settings.json) 中编辑“加密”和“信任”服务器证书属性。 最佳做法是支持与服务器的受信任的加密连接。

Visual Studio Code GUI 的屏幕截图,其中显示了信任服务器证书的提示通知。

对于连接到 Azure SQL 数据库的用户,无需更改已保存的现有连接;Azure SQL 数据库支持加密连接并使用受信任的证书进行了配置。

对于连接到本地 SQL Server 或虚拟机中的 SQL Server 的用户,如果“加密”设置为“True”,请确保你拥有来自受信任的证书颁发机构的证书(例如非自签名证书)。 此外,也可以选择不使用加密(“加密”设置为“False”)进行连接或信任服务器证书(“加密”设置为“True”且“信任”服务器证书设置为“True”)。

创建数据库

  1. 在先前启动的新 SQL 文件中,键入 sql 以显示可编辑的代码段的列表

    Visual Studio Code 的编辑器中 SQL 片段的屏幕截图。

  2. 选择“sqlCreateDatabase”

  3. 在代码段中,键入 TutorialDB 以替换“DatabaseName”:

    -- 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
    
  4. 按“Ctrl”+“Shift”+“E”执行 Transact - SQL 命令 。 在查询窗口中查看结果。

    屏幕截图,其中显示 Visual Studio Code 中的创建数据库消息。

    提示

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

创建表

  1. 删除代码编辑器窗口中的内容。

  2. 按“Ctrl”+“Shift”+“P”或“F1”打开“命令面板” 。

  3. 键入 sql 可显示 mssql 命令,或键入 sqluse,然后选择“MS SQL: 使用数据库”命令 。

  4. 选择新的“TutorialDB”数据库

    屏幕截图,其中显示 Visual Studio Code 中的选择数据库。

  5. 在代码编辑器中,键入 sql 以显示片段,选择“sqlCreate Table”后按“Enter”

  6. 在片段中,键入表名 Employees

  7. 按“Tab”键转到下一个字段,然后键入 dbo 作为架构名称

  8. 使用以下列替换列定义:

    EmployeesId INT NOT NULL PRIMARY KEY,
    Name [NVARCHAR](50)  NOT NULL,
    Location [NVARCHAR](50)  NOT NULL
    
  9. 按“Ctrl”+“Shift”+“E”可创建表 。

插入和查询

  1. 添加下列语句,将四行插入“Employees”表

    -- 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 可帮助你完成语句:

    屏幕截图,其中显示 Visual Studio Code 中的 T-SQL IntelliSense。

    提示

    mssql 扩展还包含可帮助创建 INSERT 和 SELECT 语句的命令。 前面的示例中未使用这些命令。

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

    屏幕截图,其中显示 Visual Studio Code 中的“结果”窗格。

查看并保存结果

  1. 选择“视图”>“编辑器布局”>“翻转布局”以切换为垂直拆分或水平拆分的布局 。

  2. 选择“结果”和“消息”面板标头来折叠和展开面板

    屏幕截图,其中显示 Visual Studio Code 中的“切换”标题。

    提示

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

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

    屏幕截图,其中显示 Visual Studio Code 中的“最大化”网格。

    注意

    T-SQL 脚本产生两个或多个结果网格时,会出现最大化图标。

  4. 右键单击网格,打开网格上下文菜单。

    屏幕截图,其中显示 Visual Studio Code 中的“上下文”菜单。

  5. 选择“全选”

  6. 再次打开网格上下文菜单,选择“另存为 JSON”将结果保存到“.json”文件

  7. 为 JSON 文件指定文件名。

  8. 验证 JSON 文件是否在 Visual Studio Code 中保存和打开。

    屏幕截图,其中显示 Visual Studio Code 编辑器中的“另存为 JSON”。

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