查询表主键外键信息的SQL

liu730201

liu730201

2016-01-29 16:27

查询表主键外键信息的SQL,查询表主键外键信息的SQL
 

我的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:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/)

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'
 
其它数据库还没时间去实现.

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/sqlserver/) 
展开更多 50%)
分享

猜你喜欢

查询表主键外键信息的SQL

SQLServer
查询表主键外键信息的SQL

MySQL 创建主键,外键和复合主键的语句

编程语言 网络编程
MySQL 创建主键,外键和复合主键的语句

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle系统表外键的更名

编程语言 网络编程
Oracle系统表外键的更名

用SQL进行单表查询

编程语言 网络编程
用SQL进行单表查询

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Sql 语句:显示 Sql Server 中所有表中的信息

编程语言 网络编程
Sql 语句:显示 Sql Server 中所有表中的信息

显示 Sql Server 中所有表中的信息

编程语言 网络编程
显示 Sql Server 中所有表中的信息

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《崩坏学园2》操作技巧心得

《崩坏学园2》操作技巧心得

sql server的cube操作符使用详解

sql server的cube操作符使用详解
下拉加载更多内容 ↓