select * from sysforeignkeys where rkeyid=object_id('tabname')
create table t1(id int primary key,name varchar(10))create table t2(id int primary key,name varchar(10),fid int foreign key references t1(id))create table t3(id int primary key,name varchar(10),fid int foreign key references t1(id))select object_name(fkeyid) as tabname ,* from sysforeignkeys where rkeyid=object_id('t1')
我是想实现这种功能 比如三个表 A,B,C 其中A表结构 id int,mid1 int,mid2 intB表结构 id int,fid1 intC表结构 id int,fid1 int其中A中mid1和B中的fid1有主外键关系 其中A中mid2和C中的fid1有主外键关系A表中数据 1,1,1 2,2,2B表中数据 1,2 1,3C表中数据 1,2 1,3比如现在想查询A表中第二条记录的相关数据,哪么应该能够查到B和C表中第一条记录也就是可以找到2条记录
select B.* from A join B on A.mid1=B.fid1 union all select C.* from A join C on A.mid2=C.fid1
where rkeyid=object_id('tabname')
create table t1(id int primary key,name varchar(10))create table t2(id int primary key,name varchar(10),fid int foreign key references t1(id))create table t3(id int primary key,name varchar(10),fid int foreign key references t1(id))select object_name(fkeyid) as tabname ,* from sysforeignkeys
where rkeyid=object_id('t1')
比如三个表 A,B,C
其中A表结构
id int,mid1 int,mid2 intB表结构
id int,fid1 intC表结构
id int,fid1 int其中A中mid1和B中的fid1有主外键关系
其中A中mid2和C中的fid1有主外键关系A表中数据
1,1,1
2,2,2B表中数据
1,2
1,3C表中数据
1,2
1,3比如现在想查询A表中第二条记录的相关数据,哪么应该能够查到B和C表中第一条记录也就是可以找到2条记录