通过


SQL 笔记本(预览版)

用于 Visual Studio Code 的 MSSQL 扩展中的 SQL 笔记本使用 Visual Studio Code 原生 Jupyter 笔记本提供基于 Jupyter 笔记本的 SQL 开发。 可以将交互式 SQL 查询执行与 Markdown 文档单元相结合,以生成可运行的查询集合、文档数据库操作和共享可重现的分析。

小窍门

SQL 笔记本目前处于预览状态,可能会根据反馈进行更改。 在 GitHub 讨论 中加入社区,分享想法或报告问题。

功能

SQL Notebook 提供这些功能:

  • 在笔记本代码单元中以交互方式执行 T-SQL 查询,其中内联结果显示在每个单元格下方。

  • 使用原生 Visual Studio Code Jupyter 笔记本格式(.ipynb 文件),可与现有笔记本工具完全兼容。

  • 在包含排序、筛选、单元格选择、null 值突出显示和复制选项(包括标头复制)的丰富数据网格中查看查询结果。

  • 使用 IntelliSense 编写 SQL,能够根据您的活动数据库连接提供表名和列名建议。

  • 将 Markdown 文本单元格与 SQL 代码单元格一起添加到文档查询、批注结果和创建叙述工作流。

  • 将每个笔记本连接到 SQL Server 实例并在同一服务器上的数据库之间切换。

  • 单独运行单元格或按顺序执行所有单元格。

  • 使用 GitHub Copilot 在代码单元中提供内联查询建议,并通过聊天驱动的笔记本编写功能,从自然语言描述生成完整的笔记本。

  • 通过安装 Jupyter 扩展,将 SQL 单元格与同一笔记本中的其他语言内核(如 Python)组合在一起。

  • 将笔记本导出并共享为 .ipynb 文件,其他人可以在 Visual Studio Code 或任何兼容 Jupyter 的环境中打开。

先决条件

在使用 SQL Notebook 之前,请确保满足以下要求:

创建 SQL 笔记本

可以通过多种方式创建新的 SQL 笔记本:

  • 打开 命令面板 (Windows 和 Linux 上的 Ctrl+Shift+P ,或 macOS 上的 Cmd+Shift+P ),键入 New Notebook并选择命令。

  • 转到“ 文件 ”菜单,选择“ 新建文件”,然后选择 Jupyter Notebook 类型。

  • 右键单击 MSSQL 扩展 的对象资源管理器 中的数据库,然后从上下文菜单中选择 “新建笔记本 ”。

创建新笔记本时,选择 MSSQL 内核以在代码单元中启用 T-SQL 执行。

连接到数据库

每个 SQL 笔记本都需要一个活动数据库连接才能运行查询。 使用 MSSQL 内核打开笔记本时,扩展会提示你选择连接配置文件或创建新的连接配置文件。

重要

每个笔记本支持每个内核的单个服务器连接。 可以连接到一个 SQL Server 实例并在该服务器上的数据库之间切换,但不能连接到同一笔记本中的多个服务器。 若要使用其他服务器,请创建单独的笔记本或更改笔记本的连接。

编写和运行 SQL 单元格

使用 SQL 代码单元可以在笔记本中以交互方式编写和执行 T-SQL 查询。

  1. 在笔记本工具栏中选择 “+ 代码 ”以添加新的代码单元格。

  2. 在单元格中输入 T-SQL 查询。 该单元格提供与标准查询编辑器相同的 SQL 编辑功能体验,包括从已连接数据库中获取表和列名建议的 IntelliSense。

  3. 选择“ 运行单元格 ”(单元格左侧的播放按钮)以执行查询。

  4. 结果直接显示在富数据网格中的单元格下方。

若要按顺序运行笔记本中的所有单元格,请在笔记本工具栏中选择“ 全部运行 ”。

小窍门

使用 Ctrl+Enter (Windows 和 Linux)或 Cmd+Enter (macOS)运行当前单元格并保留在其中。 使用 Shift+Enter 运行当前单元格,并前进到下一个单元格。

查询结果

SQL Notebook 中的查询结果提供标准查询编辑器中提供的相同丰富的数据网格体验:

  • 排序:选择列标题以升序或降序对结果进行排序。
  • 筛选:使用列标题上的筛选器图标筛选结果数据。
  • 单元格选择:在结果网格中选择单个单元格或单元格区域。
  • Null 突出显示NULL 结果网格中的值会直观地被突出显示,便于识别。
  • 复制选项:右键单击所选单元格以访问 “复制”、“ 使用标头复制”和 “全选 ”选项。

添加 Markdown 单元格

可以使用 Markdown 单元格在 SQL 代码单元格旁边添加格式化文本、标题、列表和链接。 使用它们记录查询、说明业务逻辑或添加有关预期结果的说明。

  1. 在笔记本工具栏中选择 “+ Markdown ”以添加新的文本单元格。

  2. 键入 Markdown 内容。 键入时会显示预览。

  3. 选择单元格外部以呈现 Markdown 文本。

再次选择单元格以返回到编辑模式。

使用多个内核

MSSQL 扩展开箱即用地提供 SQL 内核。 可以通过安装 Jupyter 扩展来为笔记本添加更多语言内核,该扩展包捆绑了 Python 和其他内核的支持。 可以将 SQL 数据查询与同一笔记本中的 Python 数据处理和可视化单元格组合在一起。

GitHub Copilot 集成

GitHub Copilot 与 SQL Notebook 配合使用,可帮助你编写查询和生成笔记本。 安装 GitHub Copilot 扩展时,将得到:

  • 内联建议:当你在 SQL 代码单元格中键入时,GitHub Copilot 会根据数据库上下文和周围的 Markdown 单元格内容提供查询补全建议。

  • 聊天驱动的笔记本创作:使用 GitHub Copilot Chat 生成包含交替 Markdown 和 SQL 单元格的完整笔记本。 描述要执行的分析,GitHub Copilot 将创建完整的笔记本结构。

例如,可以打开 GitHub Copilot Chat 并使用如下所示的提示:

I have a SQL Notebook open connected to AdventureWorks. Create cells for a sales
analysis: list all tables, find top 10 customers by revenue, show revenue by product
category, and demonstrate a safe data modification using BEGIN TRAN / ROLLBACK.

GitHub Copilot 生成 Markdown 文档单元格和 T-SQL 代码单元格,您可以选择单独运行或使用 运行全部 一次性运行所有单元格。

切换数据库

若要在同一服务器连接中切换到其他数据库,请执行以下操作:

  1. 选择笔记本的连接状态区域中显示的数据库名称。

  2. 从下拉列表中选择其他数据库。

所有后续单元格执行都使用新选择的数据库。

注释

若要切换到其他服务器,需要更改笔记本的连接配置文件。 请考虑为需要使用的每个服务器创建单独的笔记本。

局限性

每个笔记本的单服务器连接:目前,每个笔记本都连接到一个 SQL Server 实例。 可以在该服务器上切换数据库,但无法连接到同一笔记本中的第二台服务器。

反馈和支持

如果你有想法、反馈或想与社区互动,请加入讨论。https://aka.ms/vscode-mssql-discussions 若要报告 bug,请访问 https://aka.ms/vscode-mssql-bug。 若要请求新功能,请转到 https://aka.ms/vscode-mssql-feature-request