导出Sql Server数据字典的语句(收藏)

摘要:
1: SELECTTOP(100)百分比现金。border=1THENd。nameELS“ENDAS表名,CASEWHENa。border=1THEnisull(f.值,“”)ELS“ENDAS表说明,a.colorderAS字段序列号,a.nameAS字段名称,CASEHENCOLUMNPROPERTY(a.id,a.name,'IsIdenti

1 导表的:

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 = so.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 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
ORDER BY d.name, 字段序号

2\导索引的
SELECT TOP 100 PERCENT --a.id,
CASE WHEN b.keyno = 1 THEN c.name ELSE '' END AS 表名,
CASE WHEN b.keyno = 1 THEN a.name ELSE '' END AS 索引名称, d.name AS 列名,
b.keyno AS 索引顺序, CASE indexkey_property(c.id, b.indid, b.keyno, 'isdescending')
WHEN 1 THEN '降序' WHEN 0 THEN '升序' END AS 排序, CASE WHEN p.id IS NULL
THEN '' ELSE '√' END AS 主键, CASE INDEXPROPERTY(c.id, a.name, 'IsClustered')
WHEN 1 THEN '√' WHEN 0 THEN '' END AS 聚集, CASE INDEXPROPERTY(c.id,
a.name, 'IsUnique') WHEN 1 THEN '√' WHEN 0 THEN '' END AS 唯一,
CASE WHEN e.id IS NULL THEN '' ELSE '√' END AS 唯一约束,
a.OrigFillFactor AS 填充因子, c.crdate AS 创建时间, c.refdate AS 更改时间
FROM dbo.sysindexes a INNER JOIN
dbo.sysindexkeys b ON a.id = b.id AND a.indid = b.indid INNER JOIN
dbo.syscolumns d ON b.id = d.id AND b.colid = d.colid INNER JOIN
dbo.sysobjects c ON a.id = c.id AND c.xtype = 'U' LEFT OUTER JOIN
dbo.sysobjects e ON e.name = a.name AND e.xtype = 'UQ' LEFT OUTER JOIN
dbo.sysobjects p ON p.name = a.name AND p.xtype = 'PK'
WHERE (OBJECTPROPERTY(a.id, N'IsUserTable') = 1) AND (OBJECTPROPERTY(a.id,
N'IsMSShipped') = 0) AND (INDEXPROPERTY(a.id, a.name, 'IsAutoStatistics') = 0)
ORDER BY c.name, a.name, b.keyno

3\导出主\外键\约束\试图等对象
SELECT DISTINCT
TOP 100 PERCENT o.xtype,
CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN 'PK' THEN
'主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图' WHEN 'FN'
THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值' ELSE '存储过程'
END AS 类型, o.name AS 对象名, o.crdate AS 创建时间, o.refdate AS 更改时间,
c.text AS 声明语句
FROM dbo.sysobjects o LEFT OUTER JOIN
dbo.syscomments c ON o.id = c.id
WHERE (o.xtype IN ('X', 'TR', 'C', 'V', 'F', 'IF', 'TF', 'FN', 'P', 'PK')) AND
(OBJECTPROPERTY(o.id, N'IsMSShipped') = 0)
ORDER BY CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN
'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图'
WHEN 'FN' THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值'
ELSE '存储过程' END DESC

4 导出索引的碎片率

DECLARE @db_name VARCHAR(256)
SET @db_name='MyDB' --数据库名
SELECT db_name(a.database_id) [db_name],c.name [table_name], b.name [index_name], a.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(@db_name), NULL,NULL, NULL, 'Limited') AS a
 JOIN sys.indexes AS b  ON a.object_id = b.object_id
  AND a.index_id = b.index_id
 JOIN sys.tables AS c ON a.object_id = c.object_id
WHERE a.index_id>0
 AND a.avg_fragmentation_in_percent>50

5 触发器

select   a.name as [Table],b.name as [Trigger]
from   sysobjects   a   ,   sysobjects   b  
where   a.id   =   b.parent_obj    
      and   a.xtype   =   'u'   and   b.xtype   =   'tr'

免责声明:文章转载自《导出Sql Server数据字典的语句(收藏)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NSIS 2.0界面快速入门PHP跳出循环之“break”下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle 表空间

表空间(table space)是Oracle数据库中最大的逻辑结构。从逻辑上说,Oracle数据库是由若干个表空间组成的。表空间与数据库的物理结构有着十分密切的关系,它与磁盘上若干个数据文件相对应。从物理上说数据库的数据被存放在数据文件中,从逻辑上说数据是被存放在表空间中。 表空间是个重要的概念,因为它提供了一套有效组织数据的方法。数据库的逻辑配置实际上...

应用开发框架之——数据字典、原数据、模板

对象根据原数据动态生成,改变原数据,根据原数据动态生成的对象的属性也随之改变。 可以把原数据保存在数据表中,或者文件中。软件系统运行的时候读取这些原数据,然后动态地生成一些对象。 在管理软件里面,我们习惯性地叫数据字典。为此会专门设计一个数据字典的数据表来保存原数据。通过软件设置改变就是数据字典数据表里面的原数据。 模板,大概是c++的叫法。无论怎样,数据...

使用数据字典layui搜索框三联动

/** * 自定义的搜索初始化插件 * 说明: * 给需要异步加载数据字典的加上自定义属性jq-search="qu" * qu为数据字典对应的key * 如果需要级联查询的则加上自定义属性lay-filter, * 如果没有下一级或者子集则不需要加 * 三联动第一个lay-filter设成1,第三个设成3,代码中有判定 * echo用于放...

Java之数据字典实现

数据字典核心代码实现: @Component public classDictMap { @Autowired privateSysDictDataMapper dictDataMapper; private static HashMap<String, String> hashMap = new HashMap<...

greenplum(postgresql) 数据字典

greenplum是基于postgresql开发的分布式数据库,里面大部分的数据字典是一样的。我们在维护gp的时候对gp的数据字典比较熟悉,特此分享给大家。在这里不会详细介绍每个字典的内容,只会介绍常见的应用以及一些已经封装好了的函数。具体的介绍大家可以去看postgresql的中文文档(附件),里面有详细的解释。 1.postgresql中,所有数据库的...

学习笔记:oracle学习一:oracle11g体系结构之服务器结构、数据字典

目录 1、服务器架构 1.1 系统全局区SGA 1.1.1 高速数据缓冲区(database buffer cache) 1.1.2 重做日志缓冲区(redo log buffer cache) 1.1.3 共享池(shared pool) 1.1.4 大型池(large pool) 1.1.5 Java池 1.1.6 流池 1.2 程序全局...