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

发表于:2007-07-02来源:作者:点击数: 标签:
--我参照的表名 我的果些字段[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.fke
--我参照的表名  我的果些字段[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

原文转自:http://www.ltesting.net