电脑技术学习

利用存储过程得到某一指定的表与其它的表之间的外键关系

dn001
--我参照的表名 我的果些字段[5]要参照以下表[1]的某些字段[3]的取值
declare @id bigint
select @id=id from sysobjects where name='d_病人资料库'
select a. name N'被参照表名',b.rkey N'被参照列在被参照表中的位置',c.name N'被参照列名',b.fkey N'参照字段在本表中的列位置' ,d.name N'参照字段名'
from sysforeignkeys b ,sysobjects a,syscolumns c ,(select name,colid from syscolumns where id=@ID ) d
where a.id=b.rkeyid and b.fkeyid=@ID and c.id=a.id and c.colid=b.rkey and d.colid=b.fkey
---我被参的表名 以下的表[1]的某列[2]的取值要求参照我的哪些字段[5]
select a. name N'参照我的表名',c.name N'列名',b.fkey N'参照字段位置' ,b.rkey N'我被参照字段在表中的位置',d.name N'我被参照的字段名'
from sysforeignkeys b ,sysobjects a,syscolumns c ,(select name,colid from syscolumns where id=@ID) d
where a.id=b.fkeyid and b.rkeyid=@ID and c.id=a.id and c.colid=b.fkey and d.colid=b.rkey

标签: