SQL 查询业务库_SQL 查询数据字典_sql查询表结构,过程,视图,主键,外键,约束

SQL 查询业务库

--  查询非系统数据库

Select name FROM Master.. SysDatabases where dbid>4


--  选择water数据库下的所有表
use   [ water ]   SELECT  name  FROM  sysobjects  WHERE  xtype  =   ' U '   Or  xtype  =   ' S '

--  选择water数据库下的所有用户表
use   [ water ]   SELECT  name  FROM  sysobjects  WHERE  xtype  =   ' U '   AND   OBJECTPROPERTY  (id,  ' IsMSShipped ' )  =   0

--  查询water数据库下的admin表的字段名,长度,类型,字段说明
use   [ water ]   SELECT  a. [ name ]   as   ' 字段名 ' ,a.length  ' 长度 ' ,c. [ name ]   ' 类型 ' ,e.value  as   ' 字段说明 '   FROM  syscolumns  a 
left     join     systypes    b    on       a.xusertype = b.xusertype 
left       join      systypes     c      on       a.xtype  =  c.xusertype 
inner     join    sysobjects  d    on       a.id = d.id      and    d.xtype = ' U '  
left   join  sys.extended_properties e  on  a.id  =  e.major_id  and  a.colid  =  e.minor_id  and  e.name = ' MS_Description '
where  d.name = ' admin '

SQL 查询数据字典


select name from sysobjects where xtype='TR' --所有触发器
select name from sysobjects where xtype='P' --所有存储过程
select name from sysobjects where xtype='V' --所有视图
select name from sysobjects where xtype='U' --所有表

以上为SqlServer用法

Select object_name From user_objects Where object_type='TRIGGER'; --所有触发器
Select object_name From user_objects Where object_type='PROCEDURE'; --所有存储过程
Select object_name From user_objects Where object_type='VIEW'; --所有视图
Select object_name From user_objects Where object_type='TABLE'; --所有表

以上为Oracle用法

 

sql查询表结构,过程,视图,主键,外键,约束

 

一、表结构查询

SELECT TOP (100) PERCENT a.name AS zdm,COLUMNPROPERTY(a.id, a.name, 'IsIdentity') AS bs ,
CASE WHEN EXISTS (SELECT 1 FROM dbo.sysindexes si INNER JOIN dbo.sysindexkeys sik ON si.id = sik.id
 AND si.indid = sik.indid INNER JOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid
 INNER JOIN dbo.sysobjects so ON so.name = so.name AND so.xtype = 'PK' WHERE sc.id = a.id AND sc.colid = a.colid)
 THEN '1' ELSE '0' END AS zj , b.name AS lx, a.length AS cd, COLUMNPROPERTY(a.id, a.name,'PRECISION')
 AS jd, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS xsws,a.isnullable AS yxk, ISNULL(e.text, '')
  AS mrz, ISNULL(g.value, '') AS zdsm FROM dbo.syscolumns AS a LEFT OUTER JOIN dbo.systypes AS b ON a.xtype = b.xusertype
  INNER JOIN dbo.sysobjects AS d ON a.id = d.id AND d.xtype = 'U' AND d.status >= 0 LEFT OUTER JOIN
   dbo.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN sys.extended_properties AS g
   ON a.id = g.major_id AND a.colid = g.minor_id LEFT OUTER JOIN sys.extended_properties
   AS f ON d.id = f.major_id AND f.minor_id = 0  where d .name='查询的表名'

二、
-- 查询存储过程
select CASE a.xtype  WHEN 'p' THEN '存储过程' end as lx ,a.name, b.text from sysobjects a left outer join syscomments b on a.id = b.id where xtype='p'
--查询视图
select  CASE a.xtype  WHEN 'v' THEN '视图' end as lx,a.name , b.text from sysobjects a left outer join syscomments b on a.id = b.id where xtype='v'

--主键,外键,约束
select
CASE a.xtype  WHEN 'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束'
END AS lx,a.name AS name,
b.text from sysobjects a left outer join syscomments b on a.id = b.id
where (a.xtype IN ( 'C',  'F','PK')) AND
(OBJECTPROPERTY(a.id, N'IsMSShipped') = 0) and a.parent_obj=(select id from sysobjects where name = 'table_2')

环境是用的sql2008

其中涉及到的表  与视图  过程的名称在sql的帮助中能够查到明细

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,作为AI语言模型,我无法提供完整的SQL代码。但是,我可以提供一些数据字典的设计指南,以及一些常见的SQL数据字典。 设计指南: 1. 确定需要收集的数据:在设计数据字典之前,需要确定需要收集哪些数据。这通常包括和列的名称、数据类型、长度、描述、默认值、是否允许为空、索引、主键外键等。根据具体情况,可以添加其他有用的信息。 2. 确定数据字典结构数据字典应该具有足够的字段来存储所有必需的数据,同时也应该易于查询和更新。一般来说,可以将数据字典分为两个部分:信息和列信息。 3. 确定数据字典的关系:数据字典应该与实际数据库中的和列保持一致,并且应该能够方便地查询它们。这通常需要使用外键数据字典与实际和列关联起来。 常见的SQL数据字典: 1. sys.objects:此包含数据库中所有对象的信息,包括视图、存储过程、触发器等。 2. sys.columns:此包含每个中的所有列的信息,包括名称、数据类型、长度、是否允许为空等。 3. sys.indexes:此包含每个中的所有索引的信息,包括名称、类型、列名、是否唯一等。 4. sys.tables:此包含每个的信息,包括名称、创建日期、修改日期等。 5. sys.views:此包含所有视图的信息,包括名称、定义、创建日期等。 6. sys.triggers:此包含所有触发器的信息,包括名称、定义、创建日期等。 这些结构和字段会根据具体的数据库管理系统而有所不同。在设计数据字典之前,应该先了解所使用的数据库管理系统的文档和指南。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值