我的数据库有很多列可以在表中重复使用,但列的名称会更改。
编辑:举个例子:我们在电信行业处理10位数的电话号码。它在100多个表中使用,通常每个表使用不同的column_name,并且列的数据类型和格式不一致(例如' 123-456-7890',' 1234567890',int 1234567890,1800-123-456-7890)。
对于培训和分析,我希望能够用不同的名称链接或识别这些重复项。
我该怎么做?
答案 0 :(得分:0)
如果使用引用约束声明外键,那么至少应该帮助您使用关键字段。
有时,但并非总是如此,数据库设计人员将使用用户定义类型一次指定给定的数据格式,而不是在许多列中表示相同的定义。如果是这样,那么引用相同UDT的多个表都将具有相同的形式,尽管不一定具有相同的语义。
对系统表的快速研究应该向您展示如何通过UDT名称查询和分组。这应该将列但相同的数据放在一起。
答案 1 :(得分:0)
示例:我在电信公司工作,我们使用的电话号码很多 不同的方法。该数据点(电话号码)被重用 几乎100个表,它有几十个不同的列名
好的,不,SQL Server无法为您自动识别这些列。
如果您可以根据可用的元数据(例如sys.columns
)提出以编程方式识别电话号码列的规则,则可以编写一个查询来获取所有此类列。
如果您必须浏览列并手动确定哪些是电话号码列,则可以开始手动将此信息存储在您自己设计的元表中。类似的东西:
TableName ColumnName StandardName
Table1 Phone PhoneNumber
Table2 HomePhone PhoneNumber
Table2 WorkPhone PhoneNumber
其中TableName
和ColumnName
是实际名称,而StandardName
是您手动分配的值,对于所有“相同”列,它将是相同的“标准”名称。< / p>
然后可以使用/查询此元表进行参考,培训和分析。