这听起来像是一个疯狂的要求。我报告的数据库没有任何外键,每个主键都是一个身份列。这使得使用 TOAD 等工具变得困难,因为 Intellisense 通过读取 PK 和 FK 关系来工作。
任何人都有一个脚本可以从数据库中的每个表中删除主键,这样我就可以用“正确”的 PK 替换它们并添加 FK 来帮助报告?
阻止“不要这样做!!!”的雪崩 回复,让我明确表示我不会对我的生产数据库执行此操作,而是将其复制到另一台服务器上。
任何意见,将不胜感激。
-------- 编辑 这是用正确的信息更新的。----------------
谢谢大家,但我意识到我犯了一个错误。几乎每个表都有一个具有标识属性的“identity_column”。该标识是一个聚集索引。但是,它没有被指定为主键。
首先,主键和聚集索引有什么区别?
其次,如何编写出所有聚集索引的脚本?这行得通吗?
SELECT
'ALTER TABLE ' + OBJECT_NAME(OBJECT_ID) + ' DROP CONSTRAINT ' + name
FROM sys.indexes WHERE type_desc = 'CLUSTERED'
谢谢你的耐心