Jua*_*lez 3 database-design sql-server primary-key unique-constraint
我正在将不同来源的平面文件导入 SQL Server 中的表中。我正在使用提取中的字段组合创建一个复合主键,这些字段将为我的每一行提供一个唯一的键。
我现在的做法是从 1 个字段开始,然后继续连接字段,直到找到对所有记录都是唯一的键。这可能有点耗时,或者我最终可能会连接比我真正需要的更多的列以获得唯一键。
是否有某种 SQL 脚本可以在表上运行,它会给我最少数量的字段(名称),我需要连接以获得唯一键?因此,如果表中有 1 个字段对所有记录都是唯一的,则将返回该 1 个字段名称。如果我需要连接 [memberid]、[claimid] 和 [date of service] 以获得唯一键,那么这 3 个字段名称将是脚本的结果。
虽然评论和 srutzky 提供了一些很好的建议,但有一个工具完全适合您的情况。SSISData Profiling Task
旨在识别潜在的主键(用于多列)以及提供许多其他有用的数据洞察。
只需创建一个新的 SSIS 包,添加任务,然后使用类似向导的界面来分析您的数据。在您可以访问的地方创建一个新的输出文件,选择Quick Profile...
然后从所需的数据库和表中分析适当的信息。
完成后,运行包并返回组件以选择Open Profile Viwer...
并查看所有令人兴奋的数据!当最多需要 7 列用于候选键考虑(未显示)时,该工具为我的一个事实表提供了 96% 的匹配,用于三列 PK。
为了清楚起见,我绝对同意业务规则应该确定数据的唯一性......仅仅因为您找到适合您的数据的列组合以获得唯一性并不一定意味着它有任何意义。=)
归档时间: |
|
查看次数: |
1753 次 |
最近记录: |