数据库比对工具SQL(表、字段、触发器、索引、视图、存储过程)
做一个数据库比对小工具,把SQL做一个笔记
SELECT object_id AS ID --表ID
,'表' sType
,Name --表名
FROM sys.tables
ORDER BY Name
--字段
SELECT A.Name --字段名
,'字段' sType
,B.name AS typeName --字段类型
,A.max_length AS typeLength --长度(nvarchar要除以2 -1等于max)
,C.text AS defaultValue --默认值
,A.object_id AS PID --表名
,A.is_nullable AS [isNull] --是否为空
,A.is_identity AS isIdentity --是否值增长
, CASE WHEN IC.object_id IS NULL THEN 0 ELSE 1 END AS isPK --是否主键(自带聚集索引)
, CASE WHEN IC.object_id IS NULL THEN 0 ELSE 1 END AS isUnique --是否唯一
FROM sys.columns A
INNER JOIN sys.types B ON A.user_type_id=B.user_type_id
INNER JOIN sys.tables D ON D.object_id=A.object_id
LEFT JOIN sys.syscomments C ON A.default_object_id=C.id
LEFT JOIN sys.objects OB ON OB.parent_object_id=A.object_id AND OB.type='PK'
LEFT JOIN sys.indexes S ON S.name=OB.name
LEFT JOIN sys.index_columns IC ON IC.object_id = A.object_id AND ic.index_id=s.index_id AND ic.column_id=A.column_id
ORDER BY A.object_id,A.column_id
--非主键关联的索引
SELECT A.Name --索引名
,'索引' sType
,D.NAME AS colName --关联字段名
,A.object_id AS PID --表名
,A.type_desc AS typeDesc--索引类型
,A.is_unique AS isUnique --是否唯一
FROM SYS.INDEXES A
JOIN SYS.INDEX_COLUMNS B ON (A.object_id = B.object_id AND A.index_id = B.index_id)
JOIN SYS.TABLES C ON (A.object_id = C.object_id)
JOIN SYS.COLUMNS D ON (A.object_id = D.object_id AND B.column_id = D.column_id)
WHERE A.is_primary_key=0
ORDER BY A.object_id,B.index_column_id
--触发器
SELECT A.parent_id AS PID --表ID
,'触发器' sType
,A.Name --触发器名称
,B.Text --触发器内容
FROM sys.triggers A
INNER JOIN sys.syscomments B ON A.object_id=B.id
ORDER BY A.name
--视图
SELECT A.object_id AS ID
,'视图' sType
,A.Name --视图名
,B.definition Text --存储过程内容
FROM sys.views A
INNER JOIN sys.sql_modules B ON A.object_id=B.object_id
ORDER BY A.name
--存储过程
SELECT A.object_id AS ID
,'存储过程' sType
,A.Name --存储过程名称
,B.definition Text --存储过程内容
FROM sys.procedures A
INNER JOIN sys.sql_modules B ON A.object_id=B.object_id
ORDER BY A.name
数据库比对工具SQL(表、字段、触发器、索引、视图、存储过程)的更多相关文章
- SQL基础随记2 视图 存储过程
SQL基础随记2 视图 存储过程 View CREATE/ALTER/DROP VIEW ViewName as SELECT(...) 可以在视图的基础上继续创建视图,即,将之前创建的视图当做表 ...
- SQL Server 优化---为什么索引视图(物化视图)需要with(noexpand)强制查询提示
本文出处:http://www.cnblogs.com/wy123/p/6694933.html 第一次通过索引视图优化SQL语句,以及遇到的一些问题,记录一下. 语句分析 最近开发递交过来一个查询统 ...
- 数据库性能监测工具——SQL Server Profiler
使用SQL Server Profiler 进行sql监控需要一些设置: 其他的就是进行分析了~ 清除SQL SERVER缓存 常用的方法: DBCC DROPCLEANBUFFERS 从缓冲池中删除 ...
- information_schema系列五(表,触发器,视图,存储过程和函数)
这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:TABLES TABLES这张表毫无疑问了,就是记录的数据库中表 ...
- sql中的触发器、视图、事务
·触发器(trigger) [触发器本质上还是一个存储过程,只不过不是用exe来调用执行,而是通过增删改数据库的操作] [触发器只对增.删.改有效] 触发器的格式 (instead of与for的区别 ...
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
1 创建day14数据库,创建user.sql表: A 创建数据库 day14 B 创建数据表 users create table users ( id int primary keyaut ...
- SQL Server 索引视图 聚簇索引
创建示例: 朋友的网站速度慢,让我帮忙看下,他用的SQL Server里面 有一个文章表里面有30多万条记录 还有一个用户表里面也差不多17万记录 偏偏当初设计的时候没有冗余字段 很多帖子信息需要JO ...
- 使用SQL Server 2000索引视图提高性能
什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...
- SQL Server索引视图以(物化视图)及索引视图与查询重写
本位出处:http://www.cnblogs.com/wy123/p/6041122.html 经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感 ...
随机推荐
- mysql的主从复制延迟问题--看这一篇就够了
在之前我们已经讲解了一主一从,双主双从的mysql集群搭建,在单机应用的时候看起来没有问题,但是在企业的生产环境中,在很多情况下都会有复制延迟的问题. 主从复制的原理我们在此处就不再赘述了,之 ...
- 六、JavaSE语言基础之数组
一维数组(关键字[]) 关于数组的一些概念: 数组是多个基本数据有机组合形成一个复杂数据,是一个引用数据类型数据. 数组:装指定数量元素类型相同的数据的容器. 元素:在数组中,数组中的每个数据称之为数 ...
- POJ 1279 Art Gallery 半平面交 多边形的核
题意:求多边形的核的面积 套模板即可 #include <iostream> #include <cstdio> #include <cmath> #define ...
- WebService:CXF的JaxWsDynamicClientFactory实现调用WebService接口
首先需要引入依赖jar包 #版本只供参考,具体看项目 <dependency> <grouId>org.apache.cxf</grouId> <artifa ...
- [心得体会]mysql复习
1. 进入企业需要注意的事情 (1) 查看测试服和本地的mysql版本是否一致(2) 确认sql_mode是否和线上版本一致 show VARIABLES LIKE 'sql_mode'; (3) m ...
- 创建者模式 -- 单例模式(反射&序列化)
看的视频:https://www.bilibili.com/video/av43896218/?p=286 实现方式:(构造器私有,提供一个外部可以访问的方法(可以提供实例)) 1.饿汉式:线程安全, ...
- chrome 屏蔽广告的利器
Adblock Plus https://chrome.google.com/webstore/detail/adblock-plus/cfhdojbkjhnklbpkdaibdccddilifddb ...
- Linux学习之路(RPM和YUM)
rpm包的管理 介绍: 一种用于互联网下载包的打包及安装工具(类似windows中的setup).它包含在某些Linux分发版中.它生成具有RPM扩展名的文件.RPM是RedHat软件包管理工具缩写, ...
- HADOOP及SPARK安装步骤及问题解决
说明:主节点IP:192.168.35.134 主机名:master 从节点slave1 IP: 192.168.35.135 主机名:slave1 从节点slave2 IP: 192.168 ...
- leetcode TOP100 字母异位词分组
字母异位词分组 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 思路: 一个map,将每个字符串字符进行记数,字符作为map的key,次数初始为零,以此来标识字 ...