如何取得数据库中某张表的关系

lizh383 2004-10-10 05:08:19
举个例子说,现在我知道了数据库中某张表的名称,不知道是否可以取得它在数据库中已经设置好的结构关系,如外键关系,我想知道这张表是否有某个字段是作为外键的,甚至知道外键指向的表名,可以吗?
...全文
153 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizh383 2004-10-10
  • 打赏
  • 举报
回复
谢谢楼上两位的回答,我以前很少做数据层块,对数据库里面的东西也知之甚少,popcorn(米花) 可能已经说的很清楚了,但我目前还是没有弄明白。能否帮我再解释下:a b c都指谁,用到的sysforeignkeys表的constid ,fkey, rkey,keyno,rkeyid,fkeyid都指什么。举例说吧
假设在数据库有两张表1,2,表2中字段column2作为外键指向表1中字段column2,用popcorn(米花)的sql语句怎么来得到column2及表1的名称1
langmafeng 2004-10-10
  • 打赏
  • 举报
回复
查系统表sysforeignkeys
popcorn 2004-10-10
  • 打赏
  • 举报
回复
MS SQLSERVER;

SELECT 表对象ID=b.fkeyid
,表名称=object_name(b.fkeyid)
,引用的列ID=b.fkey
,引用的列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid)
,引用的表对象ID=b.rkeyid
,引用的表名=object_name(b.rkeyid)
,已引用的列ID=b.rkey
,已引用的列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid)
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'

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧