数据库分析实用脚本

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 组建所创建的对象,常用来判断 是否是 系统内置或用户自定义 的对象

 

以上是关于数据库分析实用脚本的主要内容,如果未能解决你的问题,请参考以下文章

30 段 Python 实用代码

即学即用的 30 段 Python 实用代码

数据库分析实用脚本

Android 实用代码片段

Android 实用代码片段

实用代码片段将json数据绑定到html元素 (转)