当前位置: 代码迷 >> SQL >> 寻觅外键
  详细解决方案

寻觅外键

热度:80   发布时间:2016-05-05 11:47:40.0
寻找外键
一个数据库表 MeetingRoomApply 里面有 ApplyID,RoomID,BeginDate,EndDate,ApplyDate,AdminEmpID 这些字段,主键是:ApplyID  外键有:RoomID,AdminEmpID   我想找到外键:AdminEmpID   所在的表  怎么可以办到??
------解决方案--------------------
SYSFOREIGNKEY 系统表中有相关信息。
------解决方案--------------------
列名  列类型  列约束  表约束  
foreign_table_id  UNSIGNED INT  NOT NULL  主键,外键引用 SYSTABLE.table_id。唯一索引  
foreign_key_id  SMALLINT  NOT NULL  主键  
primary_table_id  UNSIGNED INT  NOT NULL  外键引用 SYSTABLE.table_id  


这种东西,参考一下手册中的说明就行了。另外通过这个表,你需要通过ID到其它表中得到表名。
------解决方案--------------------
declare @PkTableName as nvarchar(256) 
declare @PkFieldName as nvarchar(256) 
set @PkTableName='MeetingRoomApply ' 
set @PkFieldName='AdminEmpID' 

select 
    [email protected]
    [email protected]
    'FkTable'=object_name(sysforeignkeys.fkeyid), 
    'FkField'=fkCol.[name] 
from sysforeignkeys,syscolumns as fkCol,syscolumns as pkCol 
where 
sysforeignkeys.fkeyid=fkCol.[id] 
and fkCol.colid=sysforeignkeys.fkey 
and object_name(sysforeignkeys.rkeyid)[email protected] 
and sysforeignkeys.rkey=pkCol.colid   --列'Pkid'在表'Company'中的位置 
and object_name(pkCol.[id])[email protected] and pkCol.[name][email protected]
  相关解决方案