none
我想建一张表,需要查询库中所有外键信息的sql语句 RRS feed

  • 问题

  • 第一列           第二列               第三列        第四列
    当前表名        有外键的字段名   外键表名     外键表的主键名

    2009年11月22日 6:49

答案

  • select  
    	object_name(fkeyid) as tabname ,
    	object_name(rkeyid) as pri_tabname,
    	c.name as colname ,
    	object_name(b.id) primarykey
    from 
    	sysforeignkeys a , 
    	sysobjects b,
    	(select name,id, colid from syscolumns ) c
    where 
    	a.rkeyid = b.parent_obj 
    	and fkeyid = c.id  
    	and fkey = colid

    More: blog.csdn.net/happyflystone
    • 已标记为答案 ww-air 2009年11月22日 16:08
    2009年11月22日 15:39
  • select  
     object_name(fkeyid)   ,
        c.name  ,
     object_name(rkeyid)  ,
     d.name  
    from 
     sysforeignkeys a , 
     sysobjects b,
     syscolumns c,
        syscolumns d
    where 
     a.rkeyid = b.parent_obj 
     and fkeyid = c.id  
        and rkeyid = d.id
     and fkey = c.colid and rkey = d.colid
     and b.xtype = 'PK'

    More: blog.csdn.net/happyflystone
    • 已标记为答案 ww-air 2009年11月23日 6:02
    2009年11月23日 5:10

全部回复

  • 第一列           第二列               第三列        第四列
    当前表名        有外键的字段名   外键表名     外键表的主键名





    select
    object_name(fkeyid) as tabname ,
    object_name(rkeyid) as pri_tabname,
    c.name as colname ,
    object_name(b.id) primarykey
    from
    sysforeignkeys a ,
    sysobjects b,
    (select name,id, colid from syscolumns ) c
    where
    a.rkeyid = b.parent_obj
    and fkeyid = c.id
    and fkey = colid




    More: blog.csdn.net/happyflystone
    • 已标记为答案 ww-air 2009年11月22日 15:43
    • 取消答案标记 ww-air 2009年11月23日 6:02
    2009年11月22日 15:35
  • select  
    	object_name(fkeyid) as tabname ,
    	object_name(rkeyid) as pri_tabname,
    	c.name as colname ,
    	object_name(b.id) primarykey
    from 
    	sysforeignkeys a , 
    	sysobjects b,
    	(select name,id, colid from syscolumns ) c
    where 
    	a.rkeyid = b.parent_obj 
    	and fkeyid = c.id  
    	and fkey = colid

    More: blog.csdn.net/happyflystone
    • 已标记为答案 ww-air 2009年11月22日 16:08
    2009年11月22日 15:39
  • 我搜索了一张表,结果:
    当前表名  外键表名          外键               类型             
    Guest   GuestCategory   CategoryID     PK_GuestType
    Guest   Room                RoomID          PK_Room
    Guest   Room                RoomID          FK_Room_RoomType1
    Room   RoomType         TypeID           PK_RoomType


    还有就是我想要的结果形式是这样的
    当前表名 外键              外键表名            外键所对应的 外键表里面的键(一般是主键)
    Guest   CategoryID     GuestCategory   CategoryID
    Guest   RoomID          Room                RoomID
    Guest   RoomID          Room                RoomID
    Room   TypeID           RoomType         TypeID

    我想做一个通用一点的东西,所以拍外键表的主键名和外键不一样,比如外键是typeid 而他所对应的变成了id,这样还是不行

    • 已编辑 ww-air 2009年11月22日 16:22
    2009年11月22日 16:09
  • 我搜索了一张表,结果:
    Guest GuestCategory CategoryID PK_GuestType
    Guest Room RoomID PK_Room
    Guest Room RoomID FK_Room_RoomType1
    Room RoomType TypeID PK_RoomType
    我只要PK的,FK不要,可不可以办到


    select  
    	object_name(fkeyid) as tabname ,
    	object_name(rkeyid) as pri_tabname,
    	c.name as colname ,
    	object_name(b.id) primarykey
    from 
    	sysforeignkeys a , 
    	sysobjects b,
    	(select name,id, colid from syscolumns ) c
    where 
    	a.rkeyid = b.parent_obj 
    	and fkeyid = c.id  
    	and fkey = colid
    	and xtype = 'PK'
    ------>      and xtype = 'PK'
    More: blog.csdn.net/happyflystone
    2009年11月22日 16:12
  • 还有就是我想要的结果形式是这样的
    当前表名 外键              外键表名            外键所对应的 外键表里面的键(一般是主键)
    Guest   CategoryID     GuestCategory   CategoryID
    Guest   RoomID          Room                RoomID
    Guest   RoomID          Room                RoomID
    Room   TypeID           RoomType         TypeID

    我想做一个通用一点的东西,所以怕外键表的主键名和外键在写法上不一样,比如外键是typeid 而他所对应的变成了id,s、
    2009年11月22日 16:35
  • select  
     object_name(fkeyid)   ,
        c.name  ,
     object_name(rkeyid)  ,
     d.name  
    from 
     sysforeignkeys a , 
     sysobjects b,
     syscolumns c,
        syscolumns d
    where 
     a.rkeyid = b.parent_obj 
     and fkeyid = c.id  
        and rkeyid = d.id
     and fkey = c.colid and rkey = d.colid
     and b.xtype = 'PK'

    More: blog.csdn.net/happyflystone
    • 已标记为答案 ww-air 2009年11月23日 6:02
    2009年11月23日 5:10