我想找到一种方法来理解两个不同表中存在的两个列之间是否存在关系。
例如,在表[Sales].[SalesOrderHeader]
中,我有一列SalesOrderID
,在另一个表[Person].[EmailAddress]
中,有BusinessEntityID
。
如何检查是否有一个表在这两列之间建立关系?或者,如何确定这两列之间没有关系?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以执行以下一项操作来找到引用[Sales]。[SalesOrderHeader]的表:
EXEC sp_fkeys @pktable_name = N'SalesOrderHeader',@pktable_owner = N'Sales';
答案 2 :(得分:-1)
对于以下内容,我事先表示歉意:
create table #rels (rel_name varchar(max), matches int) declare @sql varchar(max) = '' select @sql+= char(10) + 'insert into #rels select ''' tbla + '.' + col_a + '.' + tbl_b + '.' col_b ''' colrel, count(*) from ' + tbl_a + ' join ' + tbl_b + ' on cast(' + col_a + ' as varchar(max)) = cast(' + col_b + ' as varchar(max)) from ( select a.column_name col_a, object_name(a.object_id) tbl_a, b.column_name col_b, object_name(b.object_id) tbl_b from sys.columns a cross apply sys.columns b where a.column_name <> b.column_name where a.system_type_id = b.system_type_id ) cols exec (@sql) select * from #rels where matches > 0 order by matches desc drop table #rels