首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何比较/验证sql模式

如何比较/验证sql模式
EN

Stack Overflow用户
提问于 2008-10-03 02:11:21
回答 11查看 11.4K关注 0票数 15

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

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

更新:红门列表“$395起”。有什么免费的吗?或者比仅仅保留版本号更简单?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-10-03 14:42:15

试试这个SQL。

  • 对每个数据库运行它。
  • 将输出保存到文本文件。
  • 比较文本文件。

代码语言:javascript
运行
复制
/* 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 
票数 23
EN

Stack Overflow用户

发布于 2014-02-04 17:08:34

我希望我能帮上忙--这是我建议阅读的文章:

Compare SQL Server database schemas automatically

它介绍了如何使用T-SQL、SSMS或第三方工具自动执行SQL Server架构比较和同步过程。

票数 9
EN

Stack Overflow用户

发布于 2008-10-03 06:31:11

您可以通过查找数据字典(sys.objects、sys.columns等)以编程方式完成此操作。对两个数据库进行比较。但是,也有像Redgate SQL Compare Pro这样的工具可以为您做这件事。现在,我已经将其指定为数据仓库系统上的QA工具的一部分,包括我目前正在处理的那个。在我目前的工作中,这完全没有问题,因为这里的DBA已经在使用它了。

使用这些工具的基本方法是维护一个构建数据库的参考脚本,并将其保持在版本控制中。将该脚本运行到一个临时数据库中,并将其与您的目标进行比较,以查看差异。如果你愿意的话,它还会生成补丁脚本。

据我所知,除非你想写自己的东西,否则没有免费的东西可以做到这一点。Redgate足够便宜,还不如是免费的。即使作为一个QA工具来证明生产数据库不在预期的配置中,它也会在一次事件后为您节省购买价格。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/165401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档