数据库分析实用脚本
Posted 邹敏向日葵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库分析实用脚本相关的知识,希望对你有一定的参考价值。
--************************************** -- 数据库分析实用脚本 --************************************** --1 查询数据库ID select db_id(‘soft‘) --2 查询 连接数据库的进程ID select Hostname,spid,* from master.dbo.sysprocesses where dbid in (select dbid from master.dbo.sysdatabases where name=‘soft2‘) and Hostname like ‘PC201710101756%‘ --3 查询数据库所有表记录 SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = ‘u‘) AND (b.indid IN (0, 1)) ORDER BY b.rows DESC --4 查询表数据字典完全版 SELECT 表名=case when a.colorder=1 then d.name else ‘‘ end, 字段序号=a.colorder, 字段名=a.name, 标识=case when COLUMNPROPERTY( a.id,a.name,‘IsIdentity‘)=1 then ‘√‘else ‘‘ end, 主键=case when exists(SELECT 1 FROM sysobjects where xtype=‘PK‘ and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) then ‘√‘ else ‘‘ end, 类型=b.name, 占用字节数=a.length, 长度=COLUMNPROPERTY(a.id,a.name,‘PRECISION‘), 小数位数=isnull(COLUMNPROPERTY(a.id,a.name,‘Scale‘),0), 允许空=case when a.isnullable=1 then ‘√‘else ‘‘ end, 默认值=isnull(e.text,‘‘), 字段说明=isnull(ep.[value],‘‘) FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype=‘U‘ and d.name<>‘dtproperties‘ left join syscomments e on a.cdefault=e.id LEFT JOIN sys.extended_properties AS ep ON ep.major_id = a.id and ep.class =1 and a.colorder=ep.minor_id where d.name=‘aaClass‘ --如果只查询指定表,加上此条件 order by a.id,a.colorder -- 5 查询数据字典简化版 SELECT t.[name] AS 表名, c.[name] AS 字段名, cast(ep.[value] as nvarchar(200)) AS [字段说明] FROM sys.tables AS t INNER JOIN sys.columns AS c ON t.object_id = c.object_id LEFT JOIN sys.extended_properties AS ep ON ep.major_id = c.object_id AND ep.minor_id = c.column_id WHERE --ep.class =1 AND t.name=‘aaClass‘ --6 查询数据库所有对象的定义 --D:默认值,FN:xx函数,IF:xx函数,TF:xx函数 P:存储过程,TR:触发器 V :视图 select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b where a.is_ms_shipped=0 and a.object_id = b.object_id -- and a.[type] in (‘P‘,‘V‘,‘AF‘,‘FN‘) --要查询的对象类型 -- and a.name=‘对象名‘ --要查询的对象名称 order by a.[type] asc --1. Name:对象名 --2. Object_id:对象标识号,在数据中是唯一的 --3. Principal_id :架构所有者ID --4. Parent_object_id:此对象所属对象的ID,0 = 不是子对象 --5. Type:对象类型,常用的类型有, AF = 聚合函数 P = SQL 存储过程 V = 视图 TT = 表类型 U = 表(用户定义类型) --6. Type_desc:对象类型的说明 --7. Create_date / Modify_date :创建日期 / 修改日期 --8. is_ms_shipped:是否为 内部 SQL Server 组建所创建的对象,常用来判断 是否是 系统内置或用户自定义 的对象
以上是关于数据库分析实用脚本的主要内容,如果未能解决你的问题,请参考以下文章