MSSQL2000 获取数据库表、视图、存储过程等结构信息
2011-07-29 10:06
483 查看
1.查询数据库下所有用户表(或视图)的结构信息(包括表名、字段名、类型等等)
2.查询数据库下所有存储过程的结构信息(包括存储过程名、参数名、类型等等,包括无参的存储过程)
3.查询数据库下所有用户自定义函数的结构信息(包括函数名、参数名、类型、返回值等等)
SELECT TOP 100 PERCENT CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, CASE WHEN a.colorder = 1 THEN ISNULL(f.value, '') ELSE '' END AS 表说明, a.colorder AS 字段序号, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 标识, 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 = si.name AND so.xtype = 'PK' WHERE sc.id = a.id AND sc.colid = a.colid ) THEN '√' ELSE '' END AS 主键, b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数, CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END AS 允许空, ISNULL(e.text, '') AS 默认值, ISNULL(g.[value], '') AS 字段说明, d.crdate AS 创建时间, CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改时间 FROM dbo.syscolumns a LEFT OUTER JOIN dbo.systypes b ON a.xtype = b.xusertype INNER JOIN dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' --视图为'V' AND d.status >= 0 LEFT OUTER JOIN dbo.syscomments e ON a.cdefault = e.id LEFT OUTER JOIN dbo.sysproperties g ON a.id = g.id AND a.colid = g.smallid AND g.name = 'MS_Description' LEFT OUTER JOIN dbo.sysproperties f ON d.id = f.id AND f.smallid = 0 AND f.name = 'MS_Description' ORDER BY d.name, a.colorder截图如下:
2.查询数据库下所有存储过程的结构信息(包括存储过程名、参数名、类型等等,包括无参的存储过程)
SELECT TOP 100 PERCENT CASE WHEN a.colorder = 1 THEN d.name WHEN ISNULL(a.colorder, 0) = 0 THEN d.name ELSE '' END AS 存储过程名称, CASE WHEN a.colorder = 1 THEN ISNULL(f.value, '') ELSE '' END AS 存储过程说明, a.colorder AS 参数序号, a.name AS 参数名称, b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数, CASE WHEN a.isoutparam = 1 THEN '√' ELSE '' END AS 参数输出, ISNULL(g.[value], '') AS 参数说明, d.crdate AS 创建时间, CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改时间 FROM dbo.syscolumns a LEFT OUTER JOIN dbo.systypes b ON a.xtype = b.xusertype RIGHT OUTER JOIN dbo.sysobjects d ON a.id = d.id LEFT OUTER JOIN dbo.sysproperties g ON a.id = g.id AND a.colid = g.smallid AND g.name = 'MS_Description' LEFT OUTER JOIN dbo.sysproperties f ON d.id = f.id AND f.smallid = 0 AND f.name = 'MS_Description' WHERE d.xtype = 'P' AND d.status >= 0 ORDER BY d.name, a.colorder截图如下:
3.查询数据库下所有用户自定义函数的结构信息(包括函数名、参数名、类型、返回值等等)
SELECT TOP 100 PERCENT CASE WHEN a.usertype IS NULL THEN d.name WHEN ( NOT EXISTS( SELECT c.usertype FROM syscolumns c WHERE a.id = c.id AND c.usertype IS NULL ) ) AND (a.colorder = 1 AND a.number = 0) THEN d.name ELSE '' END AS 函数名称, CASE WHEN a.colorder = 0 THEN ISNULL(f.value, '') ELSE '' END AS 函数说明, a.colorder AS 参数序号, a.name AS 参数名称, b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数, CASE WHEN a.usertype IS NULL THEN '√' WHEN ( NOT EXISTS( SELECT c.usertype FROM syscolumns c WHERE a.id = c.id AND c.usertype IS NULL ) ) AND a.number = 0 THEN '√' ELSE '' END AS 返回值, ISNULL(g.[value], '') AS 参数说明, d.crdate AS 创建时间, CASE WHEN a.usertype IS NULL THEN d.refdate WHEN ( NOT EXISTS( SELECT c.usertype FROM syscolumns c WHERE a.id = c.id AND c.usertype IS NULL ) ) AND (a.colorder = 1 AND a.number = 0) THEN d.refdate ELSE NULL END AS 更改时间 FROM dbo.syscolumns a LEFT OUTER JOIN dbo.systypes b ON a.xtype = b.xusertype INNER JOIN dbo.sysobjects d ON a.id = d.id AND (d.xtype = 'FN' OR d.xtype = 'IF' OR d.xtype = 'TF') AND d.status >= 0 LEFT OUTER JOIN dbo.sysproperties g ON a.id = g.id AND a.colid = g.smallid AND g.name = 'MS_Description' LEFT OUTER JOIN dbo.sysproperties f ON d.id = f.id AND f.smallid = 0 AND f.name = 'MS_Description' ORDER BY d.name, a.number, a.colorder截图如下:
相关文章推荐
- 获取数据库表详细信息、存储过程、视图、的sql
- mysql存储过程,获取指定数据库的某个表的字段信息
- 【java工具】使用jdbc访问数据库获取某个存储过程信息及下面参数信息
- Java获取数据库表列信息、索引信息、存储过程等信息 .
- 两个数据库的存储过程--视图--表的差异对比结构差异分析
- Java获取数据库表列信息、索引信息、存储过程等信息
- sql 中获取数据库名、表名、存储过程等信息的方法
- sql语句获取表,视图,存储过程等信息(自己总结)
- SQL Server 比较两个数据库的视图和存储过程结构差异
- 比较两个数据库中的视图/存储过程的结构(结构比较,不是功能比较)
- Oracle中用sql查询获取数据库的所有触发器,所有存储过程,所有视图,所有表
- Java获取数据库表列信息、索引信息、存储过程等信息
- 可以自定义导出数据库的表结构(视图)的一个存储过程
- SQL Server批量删除表,视图,存储过程等数据库元素
- SQL Server 获取表或视图结构信息
- mysql简单存储过程范例之遍历数据库生成视图
- 获取SQL SERVER某个数据库中所有存储过程的参数
- 安装软件时检测数据库是否存在,并安装数据库、表、视图、存储过程等(摘抄整理)
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- 数据库基础知识点二:PLSQL、游标、程序包、存储过程、触发器,序列,视图,索引,数据字典