user960567 Asked: 2021-07-27 02:05:54 +0800 CST2021-07-27 02:05:54 +0800 CST 2021-07-27 02:05:54 +0800 CST 在表中查找潜在的主键 772 我有缺少主键的表(超过 100 个)。实际上,这些是遗留表。现在根据一些复制要求,我们需要在每个表上添加主键。有什么方法可以找出表上可能的主键(准备购买商业产品)? sql-server sql-server-2014 1 个回答 Voted Best Answer Tibor Karaszi 2021-07-27T11:03:31+08:002021-07-27T11:03:31+08:00 您需要定义构成“可能的主键”的标准。完成后,您/我们可以搜索(例如 sp_special_columns)或生成使用该条件的脚本。这样的标准可以是: 列上的唯一索引(可能使用唯一约束创建)。 该表有一个具有 IDENTITY 属性的列。 uniqueidentifier 数据类型的列(但也很可能是外键)。 数据中没有重复的一列或一组列。 对于 3 和 4,您是在赌博,因为今天没有重复并不能保证明天应该有重复。 一般来说,除非您拥有数据库,否则在数据库中存在混乱的风险。假设您在每个表上添加一个标识列,使其成为 PK,这样您就可以使用复制。现在,可能有一些代码会执行 SELECT * 并分解,因为它现在获取了您添加的这一附加列。
您需要定义构成“可能的主键”的标准。完成后,您/我们可以搜索(例如 sp_special_columns)或生成使用该条件的脚本。这样的标准可以是:
对于 3 和 4,您是在赌博,因为今天没有重复并不能保证明天应该有重复。
一般来说,除非您拥有数据库,否则在数据库中存在混乱的风险。假设您在每个表上添加一个标识列,使其成为 PK,这样您就可以使用复制。现在,可能有一些代码会执行 SELECT * 并分解,因为它现在获取了您添加的这一附加列。