--- title: SQL 文件执行 description: 选择连接后执行 .sql 文件,查看进度,并在需要时取消后续语句。 --- SQL 文件执行用于导入或运行本地 `.sql` 脚本。它适合执行初始化脚本、数据补丁、数据库导出文件和迁移脚本。 执行 SQL 文件可能修改大量数据或结构。运行前请确认目标连接、目标数据库和脚本来源,生产环境建议先备份。 ## 使用流程 ### 打开 SQL 文件执行 在 DBX 中打开 SQL 文件执行面板。 ### 选择文件 选择本地 `.sql` 文件。大文件可能需要更长解析和执行时间。 ### 选择目标连接 选择要执行脚本的数据库连接和数据库。 ### 开始执行 点击执行后,DBX 会按语句执行并显示进度。 ### 检查结果 执行结束后查看成功数量、失败语句和错误信息。 ## 语句分割 DBX 会按流式方式读取 SQL 文件,并尽量正确识别语句边界,避免简单按每个分号拆分: - 字符串中的分号不会被当作语句结束 - 行注释和块注释中的分号不会被当作语句结束 - PostgreSQL 的 dollar-quoted 函数体会保持为同一条语句 - SQL Server 的 `GO` 行会被识别为批次分隔 - MySQL executable comments 会在导入前按目标连接处理:MySQL 兼容连接会展开可执行内容,非 MySQL 连接会跳过;`ENABLE/DISABLE KEYS`、`LOCK/UNLOCK TABLES`、session 状态恢复这类导入辅助指令会跳过 ## 数据库覆盖范围 SQL 文件执行面向 SQL 类数据库。Redis、MongoDB 和 Elasticsearch 不执行关系型 SQL 脚本,因此 DBX 会隐藏或禁用该功能。 ## 错误处理 默认情况下,执行遇到错误会停止。你也可以启用“遇错继续”,让 DBX 继续执行后续语句并记录失败数量。 ## 取消执行 执行过程中可以取消任务。取消只会阻止后续语句继续执行,已经提交到数据库的语句不会自动回滚。 如果脚本需要整体原子性,建议脚本本身包含事务控制,并确认目标数据库支持相关事务语义。 ## 执行前检查 - 当前连接是否是预期环境 - 脚本是否来自可信来源 - 是否包含 `DROP`、`TRUNCATE`、大范围 `UPDATE` 或 `DELETE` - 是否需要先在测试环境执行 - 是否需要启用“遇错继续” - 是否需要先使用 [数据库导出](/cn/docs/database-export) 备份