【发布时间】:2014-05-14 10:06:33
【问题描述】:
我最近下载了 RedGate 的 SQL Compare 软件的免费试用版。我需要证明它对我的公司来说是一个有用的工具,这样我们就可以获得一些许可证,但也希望获得一些同步的数据库模式。我正在尝试对 2 个数据库进行模式比较,但我得到了一些不需要的行为。当我们对getdate() 使用DEFAULT 约束时,问题就出现了。 Sql Compare 将其显示为差异,但实际上它是相同的。
[lst_updt_dtm] [datetime] NOT NULL CONSTRAINT [DF__event_fil__lst_u__26667738] DEFAULT (getdate()),
不同于
[lst_updt_dtm] [datetime] NOT NULL CONSTRAINT [DF__event_fil__lst_u__668030F6] DEFAULT (getdate()),
我想忽略这些差异并获得架构更改位置的真实比较。我的研究工作使我找到了一些遇到同样问题的人,但在所有情况下,redgate 都以类似“此功能不存在,将考虑在未来发布”之类的回应:
http://www.red-gate.com/messageboard/viewtopic.php?t=8816
但是,我找不到任何不到 5 年的信息,所以我希望从那时起,他们已经添加了这个功能
我已尝试查看项目选项并对其进行试验,但似乎没有具体针对此问题。我发现的最接近的是:
忽略约束和索引名称
在比较数据库时忽略索引、外键、主键以及默认、唯一和检查约束的名称。部署数据库时不会忽略名称。
应用此选项时,问题似乎已解决,其中许多项目已从“差异”更改为“相同对象”。但我担心这只是给我提供了一个误报。我不想总是忽略约束和键。
另外,如果当前版本的 Sql Compare 确实无法实现我想要完成的任务,我需要一种方法来在报告和部署时忽略这些差异。我在想以下解决方法可能是可行的:
- 过滤掉出现此问题的审计字段,例如
lst_updt_dtm和archived_dtm - 出现这个问题的项目手动去打勾(请不要逼我)
【问题讨论】:
-
您不认为这是您应该向 redgate 作为其第三方应用程序提出的问题,而且使用它的人并不多,而且 redgate 技术帮助热线会更乐意向您吹嘘他们的产品 :)
-
也许,但我认为这属于支持类别,他们可能不愿意给我,因为我还不是真正的客户。不过谢谢
-
您是潜在客户,相信我,这不仅是红门,任何企业都会优先考虑潜在客户而不是现有客户。他们将非常乐意为您提供帮助 :)
-
是的,这是真的,我会试一试。
标签: sql-server database redgate sqlcompare