首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么知道一个表的主键值作为其他表的外键值引用了

2012-07-15 
如何知道一个表的主键值作为其他表的外键值引用了?如果被引用了,提示用户不能删除这条记录?[解决办法]建立

如何知道一个表的主键值作为其他表的外键值引用了?
如果被引用了,提示用户不能删除这条记录?

[解决办法]
建立数据库关系
[解决办法]
试试这个存储过程

sp_fkeys

http://msdn.microsoft.com/zh-cn/library/ms175090.aspx
[解决办法]
SELECT 主键表名称=object_name(b.rkeyid)

,主键列ID=b.rkey 

,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) 

,外键表ID=b.fkeyid 

,外键表名称=object_name(b.fkeyid) 

,外键列ID=b.fkey 

,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) 

,级联更新=ObjectProperty(a.id,'CnstIsUpdateCascade') 

,级联删除=ObjectProperty(a.id,'CnstIsDeleteCascade') 

FROM sysobjects a 

join sysforeignkeys b on a.id=b.constid 

join sysobjects c on a.parent_obj=c.id 

WHERE a.xtype='F' AND c.xtype='U'
[解决办法]
我原来用过一个比较白痴的办法就是try catch,捕获到那个异常
[解决办法]
在数据库中,打开那个主键所在的表,设计模式,右键主键列,点击关系,就知道这个主键是否与其他表存在外键关系。
[解决办法]
自己没有涉及图吗、

看看设计图,或者设计一个引用关系表,写个通用的sp判断一下

热点排行