WEB开发网
开发学院数据库MSSQL Server 查询表主键外键信息的SQL 阅读

查询表主键外键信息的SQL

 2007-11-11 13:03:43 来源:WEB开发网   
核心提示:我的BSOOC里需要一个查询表主键外键信息的SQL,昨晚研究到凌晨1点,查询表主键外键信息的SQL,终于能实现这个目标:Oracle(大型网站数据库平台):select o.obj# as objectId, o.name AS tableName, oc.name AS constraintName, decode(

我的BSOOC里需要一个查询表主键外键信息的SQL,昨晚研究到凌晨1点,终于能实现这个目标:
Oracle(大型网站数据库平台):
select o.obj# as objectId, o.name AS tableName, oc.name AS constraintName,
    decode(c.type#, 1, 'C', 2, 'P', 3, 'U',
        4, 'R', 5, 'V', 6, 'O', 7,'C', '?') as constraintType,
    col.name AS columnName
   
from sys.con$ oc, sys.con$ rc,
   sys.obj$ ro,sys.obj$ o, sys.obj$ oi,
   sys.cdef$ c,
   sys.col$ col, sys.ccol$ cc, sys.attrcol$ ac
where oc.con# = c.con#
  and c.obj# = o.obj#
  and c.rcon# = rc.con#(+)
  and c.enabled = oi.obj#(+)
  and c.robj# = ro.obj#(+)
  and c.type# != 8
  and c.type# != 12    /* don't include log groups */
  and c.con# = cc.con#
  and cc.obj# = col.obj#
  and cc.intcol# = col.intcol#
  and cc.obj# = o.obj#
  and col.obj# = ac.obj#(+)
  and col.intcol# = ac.intcol#(+)
  and o.name = 'your table'
 
sql server(WINDOWS平台上强大的数据库平台):

SELECT sysobjects.id objectId,
OBJECT_NAME(sysobjects.parent_obj) tableName,
sysobjects.name constraintName,
sysobjects.xtype AS constraintType,
syscolumns.name AS columnName
FROM sysobjects INNER JOIN sysconstraints
ON sysobjects.xtype in('C', 'F', 'PK', 'UQ', 'D')
 AND sysobjects.id = sysconstraints.constid
LEFT OUTER JOIN syscolumns ON sysconstraints.id = syscolumns.id
WHERE OBJECT_NAME(sysobjects.parent_obj)='your table'
 
其它数据库还没时间去实现.

Tags:查询表 信息 SQL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接