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 脚本中定义结果选项卡名称的名称?

DBeaver 不显示 dbms_output

文档中显示的 sql 代码未在 azure synapse 专用 sql 池上运行

如何在 DBeaver 中执行 SQL 脚本?

保存的数据框未在 sql server 中正确显示