dbeaver:执行SQL语句、在新标签页中执行 SQL、 执行 SQL 脚本、本地执行 SQL 脚本、从该位置执行 SQL 脚本、在单独的标签页中执行语句 作者:马育民 • 2026-04-21 16:32 • 阅读:10002 # 介绍 如下图,有很多执行: [](https://www.malaoshi.top/upload/0/0/1GW3AjnFG4Fx.png) 下面说明各个功能 ### 1. 执行 SQL语句(快捷键:Ctrl+Enter) - **作用**:执行当前光标所在的**单条/选中的 SQL 语句** - **特点**: - 光标在哪,就执行哪条;如果选中了一段,就只执行选中的部分 - 不会把整个文件一次性跑完,适合调试、分步执行 - **适用场景**: - 单条查询、测试某条语句、分步调试脚本 - **注意**:大文件不要用它全选执行,容易卡死 --- ### 2. 在新标签页中执行 SQL(快捷键:Ctrl+\) - **作用**:和 `Ctrl+Enter` 功能一样(执行当前/选中的SQL),但**执行结果会在一个新的标签页里显示** - **特点**: - 不会覆盖当前编辑器里的查询结果,方便同时对比多条语句的结果 - **适用场景**: - 需要同时查看多个查询结果、不想来回切换的情况 --- ### 3. 执行 SQL 脚本(快捷键:Alt+X) - **作用**:一次性执行编辑器里**全部的 SQL 脚本**(从文件开头到结尾) - **特点**: - 按顺序执行文件里所有语句,遇到错误会默认停止(可以在设置里改成继续执行) - **适用场景**: - 已经打开的 `.sql` 文件,一次性跑完整个脚本(比如批量建表、初始化数据) - **注意**:文件过大(比如几十上百MB)时,建议用下面的「本地执行」 --- ### 4. 本地执行 SQL 脚本(快捷键:Alt+N) - **作用**:直接读取本地 `.sql` 文件,**以“流式”方式批量执行**,不把整个文件加载到编辑器里 - **特点**: - 不占内存,适合超大文件(几百MB甚至GB级别的备份脚本) - 可以指定编码、目标数据库、执行失败策略 - **适用场景**: - 执行大体积的SQL备份文件、批量数据导入脚本 - **注意**:需要从官方下载程序,通过程序处理超大文件,由于服务器在国外,**下载非常慢** --- ### 5. 从该位置执行 SQL 脚本(快捷键:Alt+P) - **作用**:从**当前光标位置开始**,向后执行到文件结尾的所有SQL语句 - **特点**: - 跳过光标前面的内容,只执行后面的部分 - **适用场景**: - 脚本执行到一半报错,修改后从错误位置后面继续执行,不用从头跑一遍 --- ### 6. 在单独的标签页中执行语句(快捷键:Ctrl+Alt+Shift+X) - **作用**:和 `Ctrl+Enter` 类似,但会把执行的SQL语句和结果,都放在一个全新的独立标签页里 - **特点**: - 完全不影响原来的编辑器页面,适合临时测试语句、不想污染原文件 - **适用场景**: - 临时写查询、不想改动原脚本,或者需要把不同查询的结果分开管理 --- ### 一句话总结(按你最常用的场景分) | 场景 | 用哪个? | | :--- | :--- | | 单条SQL调试、分步执行 | `Ctrl+Enter` | | 整个文件一次性跑完(小脚本) | `Alt+X` | | 超大SQL备份文件 | `Alt+N`(本地执行) | | 脚本执行一半出错,从中间继续跑 | `Alt+P` | | 临时测试,不想改动原文件 | `Ctrl+Alt+Shift+X` | # 2 和 6的区别 ## 1. 「在新标签页中执行 SQL」(快捷键:Ctrl+\) ### 核心特点:**复用当前编辑器,结果单独开标签** - **SQL 代码**:还是在你当前打开的编辑器里执行,不会复制一份 - **执行结果**:会在一个**新的结果标签页**里展示,不会覆盖你上一次的查询结果 - 举个例子: 1. 你写了 `SELECT * FROM table1;`,用 `Ctrl+Enter` 执行,结果在「结果1」标签页 2. 再写 `SELECT * FROM table2;`,用 `Ctrl+\` 执行,SQL 还是在当前编辑器里,但结果会新开「结果2」标签页 - 适合:在同一个编辑器里,反复写不同语句,又想保留每一次的结果对比。 --- ## 2. 「在单独的标签页中执行语句」(快捷键:Ctrl+Alt+Shift+X) ### 核心特点:**SQL 代码 + 结果,都在全新的独立标签页** - **SQL 代码**:会把你选中/当前的语句,复制一份到一个**全新的 SQL 编辑器标签页**里执行 - **执行结果**:和新的 SQL 编辑器绑定,也在独立的结果标签页里 - 举个例子: 1. 你在「编辑器A」里写了 `SELECT * FROM table1;` 2. 用这个功能执行,会自动新建「编辑器B」,并把语句复制过去执行 3. 「编辑器A」的内容完全不会被改动 - 适合:临时测试、不想改动原脚本,或者想把不同的查询语句分开保存。 --- ## 3. 一张表看懂区别 | 功能 | SQL 代码位置 | 执行结果位置 | 原编辑器影响 | 典型场景 | | :--- | :--- | :--- | :--- | :--- | | **在新标签页中执行 SQL(Ctrl+\)** | 原编辑器 | 新的结果标签页 | 不变 | 同一脚本里多轮查询,要对比结果 | | **在单独的标签页中执行语句(Ctrl+Alt+Shift+X)** | 全新的编辑器标签页 | 与新编辑器绑定的结果标签页 | 完全不受影响 | 临时测试语句,不想改动原文件 | --- ### 一句话总结 - 想**保留多份查询结果,又不想复制代码** → 用 `Ctrl+\` - 想**完全不改动原文件,把语句复制到新地方跑** → 用 `Ctrl+Alt+Shift+X` 原文出处:http://www.malaoshi.top/show_1GW3AjqYZeBC.html