Syngnat
01a7a6cbf0
🐛 fix(sqlserver): 避免 DDL 查看伪成功 (#890)
## 背景与问题
SQL Server 的 GetCreateStatement 会返回未支持的占位注释且不返回错误,调用方会将其视为成功 DDL。
Closes #882
## 变更点
- 原生 SQL Server DDL 不可用时返回明确、本地化的 unsupported 错误。
- 让既有 DDL fallback 使用字段和索引元数据生成可执行的 CREATE TABLE。
- 补充 SQL Server 原生错误和 fallback 控制流回归测试。
- 补齐六种语言的错误提示。
## 影响范围
- SQL Server DDL 查看不再显示伪成功的占位注释。
- 元数据可读取时,DDL 视图将展示 fallback 生成的表定义、主键、默认值和索引。
- 若 fallback 元数据读取失败,既有 UI 将展示后端错误。
## 验证方式
` ext
go test -tags gonavi_sqlserver_driver ./internal/db -run
TestSQLServerMetadataErrorsUseCurrentLanguage -count=1
go test ./internal/app -run
TestResolveCreateStatementWithFallback_SQLServerBuildsFallbackDDL
-count=1
go test ./shared/i18n -run Test -count=1
`
## 风险与回滚
未涉及数据库迁移或构建链路。没有真实 SQL Server Driver Agent
环境,真实服务端元数据兼容性仍待补充验证;如需回滚可直接回滚本 PR。
2026-08-09 15:56:57 +08:00
..
2026-08-06 16:50:28 +08:00
2026-08-08 20:51:23 +08:00
2026-08-02 12:42:05 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 19:10:51 +08:00
2026-08-02 12:42:05 +08:00
2026-08-08 19:10:51 +08:00
2026-08-02 12:42:05 +08:00
2026-08-01 18:22:21 +08:00
2026-08-01 14:58:12 +08:00
2026-08-01 14:58:12 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 19:10:51 +08:00
2026-08-01 18:22:21 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-09 15:49:18 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-09 15:49:18 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-09 15:49:18 +08:00
2026-08-08 19:13:25 +08:00
2026-08-05 16:24:02 +08:00
2026-08-09 14:22:41 +08:00
2026-08-09 14:22:41 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 19:13:25 +08:00
2026-08-01 19:49:12 +08:00
2026-08-06 16:50:28 +08:00
2026-07-29 17:19:15 +08:00
2026-08-09 13:32:51 +08:00
2026-08-01 18:22:21 +08:00
2026-08-01 18:22:21 +08:00
2026-08-08 20:51:23 +08:00
2026-08-06 16:50:28 +08:00
2026-08-05 16:24:02 +08:00
2026-08-03 14:57:06 +08:00
2026-08-03 14:57:06 +08:00
2026-08-04 11:07:08 +08:00
2026-08-08 20:51:23 +08:00
2026-07-31 23:48:27 +08:00
2026-07-31 23:48:27 +08:00
2026-07-31 23:48:27 +08:00
2026-08-01 14:58:12 +08:00
2026-08-01 14:58:12 +08:00
2026-08-05 16:24:02 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-07-28 23:51:17 +08:00
2026-07-28 23:51:17 +08:00
2026-07-28 23:51:17 +08:00
2026-07-28 23:51:17 +08:00
2026-07-28 23:51:17 +08:00
2026-07-28 23:51:17 +08:00
2026-07-28 23:51:17 +08:00
2026-08-05 22:33:53 +08:00
2026-08-05 22:33:53 +08:00
2026-08-05 22:33:53 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-08-08 19:13:25 +08:00
2026-07-28 22:11:33 +08:00
2026-08-02 13:07:26 +08:00
2026-07-28 22:11:33 +08:00
2026-08-02 13:07:26 +08:00
2026-07-31 22:02:11 +08:00
2026-07-31 22:02:11 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 19:10:51 +08:00
2026-08-08 19:10:51 +08:00
2026-08-01 18:22:21 +08:00
2026-08-01 18:22:21 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-01 14:58:12 +08:00
2026-08-01 14:58:12 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00
2026-07-30 18:17:08 +08:00
2026-07-30 18:17:08 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-08-07 19:48:43 +08:00
2026-08-07 19:48:43 +08:00
2026-08-03 23:26:15 +08:00
2026-08-03 23:26:15 +08:00
2026-08-03 23:26:15 +08:00
2026-08-03 23:26:15 +08:00
2026-07-30 21:06:12 +08:00
2026-07-30 21:06:12 +08:00
2026-08-03 23:26:15 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-07-28 22:11:33 +08:00
2026-08-08 20:51:23 +08:00
2026-08-08 20:51:23 +08:00