DBEAVER 未在 DDSL 中显示 SQL Server 聚集索引
Posted
技术标签:
【中文标题】DBEAVER 未在 DDSL 中显示 SQL Server 聚集索引【英文标题】:DBEAVER not showing SQL Server clustered index in DDSL 【发布时间】:2022-01-21 12:45:22 【问题描述】:我在 DBEAVER 21.2.4 和 SQL Server 2019 (v15.0.4178.1) 中遇到以下问题。
每当我从 SQL Server (Script Table > Create as
) 看到 DDL 时,它都会显示整个约束:
...
CONSTRAINT [PK_Emp] PRIMARY KEY CLUSTERED
(
[EmpID] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100,
OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
而 DBEAVER 仅显示
...
CONSTRAINT PK_Emp PRIMARY KEY (EmpID)
并且约束中没有数据。
未聚集。不是 Pad_index,什么都没有。
这是 Dbeaver 中的错误,还是我遗漏了什么?
【问题讨论】:
可能只是DBeaver的一个“特性”;脚本结果是由相关工具通过查询系统表生成的,SSMS 只是为您提供了更多详细信息 inc 默认值。如果您想要最好的 SQL Server 体验,请使用 SSMS。 嗨@stu,是的,我明白你的意思(使用 SSMS),我的目标是将我的精力集中在一个工具上。我基本上是在重新创建一个管道,在其中添加了 2 个新列。我正在从海狸那里复制 DDL。但我想我的 DEV 的初始阶段将用于直接在 SSMS 中收集 DDL。感谢您的帮助 考虑使用 SMO 对象或 Powershell 处理此类事情 【参考方案1】:这个
CONSTRAINT [PK_Emp] PRIMARY KEY CLUSTERED
(
[EmpID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
和
CONSTRAINT PK_Emp PRIMARY KEY (EmpID)
是相同的,因为 CLUSTERED 是 PRIMARY KEY 约束的默认值,[PRIMARY] 是默认文件组,ALLOW_PAGE_LOCKS 默认为 ON,等等。
SSMS 总是显式地编写每个选项的脚本,显然 dbbeaver 会忽略它认为使用默认值的选项。
【讨论】:
哦,这是我不知道/忘记的事情。 (我已经快 8 年没有使用 DDLS 了)。感谢您的提示:)以上是关于DBEAVER 未在 DDSL 中显示 SQL Server 聚集索引的主要内容,如果未能解决你的问题,请参考以下文章
如何让 dbeaver 突出显示 sql 错误以便于开发过程
有没有办法在 DBeaver 的 SQL 脚本中定义结果选项卡名称的名称?