SQLServer数据库差异比较

//https://www.cnblogs.com/Leo_wl/p/11069813.html

/*
    使用说明:Old数据库为DB_V1,New数据库为[localhost].DB_V2。根据实际需要批量替换数据库名称
    脚本来源:https://www.cnblogs.com/zhang502219048/p/11028767.html
*/

-- sysobjects插入临时表
select s.name + ‘.‘ + t.name as TableName, t.* into #tempTA
from DB_V1.sys.tables t
inner join DB_V1.sys.schemas s on s.schema_id = t.schema_id

select s.name + ‘.‘ + t.name as TableName, t.* into #tempTB
from [localhost].DB_V2.sys.tables t
inner join [localhost].DB_V2.sys.schemas s on s.schema_id = t.schema_id

-- syscolumns插入临时表
select * into #tempCA from DB_V1.dbo.syscolumns
select * into #tempCB from [localhost].DB_V2.dbo.syscolumns

-- 第一个数据库表和字段
select b.TableName as 表名, a.name as 字段名, a.length as 长度, c.name as 类型
into #tempA
from #tempCA a
inner join #tempTA b on b.object_id = a.id
inner join systypes c on c.xusertype = a.xusertype
order by b.name
-- 第二个数据库表和字段
select b.TableName as 表名, a.name as 字段名, a.length as 长度, c.name as 类型
into #tempB
from #tempCB a
inner join #tempTB b on b.object_id = a.id
inner join systypes c on c.xusertype = a.xusertype
order by b.name

--删掉的字段
select * from
(
    select * from #tempA
    except
    select * from #tempB
) a;

--增加的字段
select * from
(
    select * from #tempB
    except
    select * from #tempA
) a;

--select * from #tempA
--select * from #tempB

drop table #tempTA, #tempTB, #tempCA, #tempCB, #tempA, #tempB

原文地址:https://www.cnblogs.com/TNSSTAR/p/11596059.html

时间: 2024-10-09 08:14:47

SQLServer数据库差异比较的相关文章

SQLServer数据库差异备份

差异备份 (differential backup)定义 一种数据备份,基于完整数据库或部分数据库或一组数据文件或文件组(差异基准)的最新完整备份,并且仅包含自确定差异基准以来发生更改的数据. 使用SSMS数据库管理工具进行数据库差异备份 1.选择数据库->右键点击->选择任务->选择备份. 2.在备份数据库弹出框中->选择备份类型为差异->然后删除系统生成的目标文件->然后点击添加. 3.在选择备份目标弹出框中->点击选择备份路径. 4.在定位数据库文件弹出框中

(转)对SQLSERVER数据库事务日志的疑问

本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLSERVER了 实验环境:SQLSERVER2005 SP4,Windows7 本来没什么心情写文章,反正没人看,关于我文章中提到的问题,有些可以从文章结尾的MSDN补充那里找到答案,而有些还没有答案 根据CSDN博客的这篇文章介绍,大家可以先看一下,然后再继续往下看,因为下面会引用到CSDN博客里的

好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)

转载:http://www.cnblogs.com/lyhabc/p/3322437.html 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是自动备份数据库,一键还原数据库,发送备份数据库日志报告到邮箱,自动压缩备份好的数据库 定期执行数据库备份任务,取代SSMS的维护计划,上传数据库备份文件到FTP服务器.其他网络硬盘等 软件有免费和付费两种模式,不过本人觉得免费版本的功能已经足够了 支持SQLSERVER版本:SQLSERVER200

SQLSERVER数据库死锁与优化杂谈

死锁杂谈 当数据库死锁时,SqlServer会释放一个优先级较低的锁,让另一个事务运行:所以,即时去捕捉数据库死锁,是挺不容易的. 如果,数据库死锁比较长时间,那么死锁是可以被捕捉的. 可以用SqlServer活动监视器来查看,哪些进程锁了数据库. 首先打开SqlServer活动监视器,然后可以看到,界面里有进程,查看资源,数据文件I/O,最近消耗大量资源的查询四项. 四项显示内容如下: 进程:在进程里可以看到哪些进程被阻塞,查看属性[阻塞者]可以看到,[阻塞者]的会话ID. 等待资源:等待资源

SQLServer数据库自增长标识列的更新修改操作

SQLServer数据库自增长标识列的更新修改操作方法在日常的sql server开发中,经常会用到Identity类型的标识列作为一个表结构的自增长编号.比如文章编号.记录序号等等.自增长的标识列的引用很大程度上方便了数据库程序的开发,但是有时这个固执的字段类型也会带来一些麻烦. 一.修改标识列字段的值:(在执行insert时,将ID手动的设置成想要的值)有时,为了实现某个功能,需要修改类型为Identity自增长类型的字段的值,但由于标识的类型所限,这种操作默认是不允许的.比如,目前数据库有

JavaWeb程序连接SQLserver数据库

声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客. JavaWeb程序连接SQLserver数据库分为一下步骤: 1:在http://www.microsoft.com/en-us/download/details.aspx?id=21599下载sqljdbc.jar的压缩包 2:解压之后,将sqljdbc4.jar复制粘贴到你项目的WEB-INF的lib目录下 3:需要知道一些数据库方面的技术知识: 先举个例子

asp.net 连接sqlserver数据库

在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面的一个提示 直接点是就可以了. 在这个类中,首先定义一个连接对象 private SqlConnection conn = null;然后定义下面三个函数 private void SetConnection()//初始化连接对象 { if (conn == null) { //获取配置文件中的数据

web应用下sqlserver数据库ip地址无法连接问题。

刚装了sqlserver数据库,但是在myeclipse进行数据的增删改查时出现了数据库ip地址无法连接的问题,经过查找发现了问题所在.具体解决办法是: 1.打开sqlserver的配置管理器 2.仔细观察,我发现MSSQLSERVER目录下的tcp/ip协议是被禁用状态,右击选择打开协议 3.接下来在SQL SERVERS服务下对SQL SERVERS(MSSQLSERVER)重新启动. 4.然后tcp/ip协议就启动了,并且我们能知道数据库的端口号.

开启SQLSERVER数据库缓存依赖优化网站性能

很多时候,我们服务器的性能瓶颈会是在查询数据库的时候,所以对数据库的缓存非常重要,那么有没有一种方法,可以实现SQL SERVER数据库的缓存,当数据表没有更新时,就从缓存中读取,当有更新的时候,才从数据表中读取呢,答案是肯定的,这样的话我们对一些常用的基础数据表就可以缓存起来,比如做新闻系统的新闻类别等,每次就不需要从数据库中读取了,加快网站的访问速度. 那么如何开启SQLSERVER数据库缓存依赖,方法如下: 第一步:修改Web.Config的<system.web>节的配置,代码如下,让