IT技术网www.itjs.cn

当前位置:首页 > 数据库 > MySQL > 两种数据库中查询表主键外键信息的SQL语句

两种数据库中查询表主键外键信息的SQL语句

发布时间:2010-09-25 11:39 来源:未知

下文为您介绍Oracle及SQL Server两种数据库中查询表主键外键信息的SQL语句写法,供您参考,希望对您学习SQL语句的使用有所启迪。

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 */    字串9     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:

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'