当前位置:  开发笔记 > 数据库 > 正文

如何比较/验证sql架构

如何解决《如何比较/验证sql架构》经验,为你挑选了3个好方法。

我正在寻找一种在更新应用程序版本后验证生产数据库上的SQL模式的方法.如果应用程序与数据库架构版本不匹配,则应该有一种方法来警告用户并列出所需的更改.

是否有一个工具或框架(以编程方式使用)具有内置功能来做到这一点?或者是否有一些简单的算法来运行这种比较?

更新:红门列出"从$ 395".有空吗?或者比保留版本号更加万无一失?

AJ... 22

试试这个SQL.
- 针对每个数据库运行它.
- 将输出保存到文本文件.
- 区分文本文件.

/* get list of objects in the database */
SELECT name, 
       type 
FROM  sysobjects
ORDER BY type, name

/* get list of columns in each table / parameters for each stored procedure */
SELECT so.name, 
       so.type, 
       sc.name, 
       sc.number, 
       sc.colid, 
       sc.status, 
       sc.type, 
       sc.length, 
       sc.usertype , 
       sc.scale 
FROM   sysobjects  so , 
       syscolumns  sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.name

/* get definition of each stored procedure */
SELECT so.name, 
       so.type, 
       sc.number, 
       sc.text 
FROM   sysobjects  so , 
       syscomments sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.number 


小智.. 9

我希望我能提供帮助 - 这是我建议阅读的文章:

自动比较SQL Server数据库模式

它描述了如何使用T-SQL,SSMS或第三方工具自动执行SQL Server架构比较和同步过程.



1> AJ...:

试试这个SQL.
- 针对每个数据库运行它.
- 将输出保存到文本文件.
- 区分文本文件.

/* get list of objects in the database */
SELECT name, 
       type 
FROM  sysobjects
ORDER BY type, name

/* get list of columns in each table / parameters for each stored procedure */
SELECT so.name, 
       so.type, 
       sc.name, 
       sc.number, 
       sc.colid, 
       sc.status, 
       sc.type, 
       sc.length, 
       sc.usertype , 
       sc.scale 
FROM   sysobjects  so , 
       syscolumns  sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.name

/* get definition of each stored procedure */
SELECT so.name, 
       so.type, 
       sc.number, 
       sc.text 
FROM   sysobjects  so , 
       syscomments sc 
WHERE  so.id = sc.id 
ORDER BY so.type, so.name, sc.number 



2> 小智..:

我希望我能提供帮助 - 这是我建议阅读的文章:

自动比较SQL Server数据库模式

它描述了如何使用T-SQL,SSMS或第三方工具自动执行SQL Server架构比较和同步过程.



3> ConcernedOfT..:

您可以通过查看两个数据库的数据字典(sys.objects,sys.columns等)并进行比较来以编程方式执行此操作.但是,还有像Redgate SQL Compare Pro这样的工具可以帮到你.我现在已将此作为数据仓库系统QA工具的一部分指定,包括我目前正在进行的工作.在我目前的演出中,这根本不是问题,因为DBA已经在使用它了.

使用这些工具的基本方法是维护一个构建数据库的参考脚本,并将其保留在版本控制中.将脚本运行到临时数据库并将其与目标进行比较以查看差异.如果您有这种倾向,它也会生成补丁脚本.

据我所知,除非你想写自己的,否则没有任何自由.Redgate足够便宜,可能也是免费的.即使作为QA工具来证明生产数据库不在配置中,它也意味着它会在一次事故后为您节省购买价格.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有