首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

找寻外键

2013-01-01 
寻找外键一个数据库表 MeetingRoomApply 里面有 ApplyID,RoomID,BeginDate,EndDate,ApplyDate,AdminEmpID

寻找外键
一个数据库表 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 
    'PkTable'=@PkTableName, 
    'PkField'=@PkFieldName, 
    '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)=@PkTableName 
and sysforeignkeys.rkey=pkCol.colid   --列'Pkid'在表'Company'中的位置 
and object_name(pkCol.[id])=@PkTableName and pkCol.[name]=@PkFieldName

热点排行