gpt4 book ai didi

sql-server - 使用 Sql Compare 忽略默认值

转载 作者:搜寻专家 更新时间:2023-10-30 20:18:18 24 4
gpt4 key购买 nike

我最近下载了 RedGate 的 SQL 比较软件的免费试用版。我需要证明它对我的公司来说是一个有用的工具,这样我们才能获得一些许可,但也想同步获得几个数据库模式。我正在尝试对 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 确实无法实现我想要完成的目标,我需要一种方法来在报告和部署时忽略这些差异。我在想以下解决方法可能是可行的:

  1. 过滤掉出现此问题的审核字段,例如 lst_updt_dtmarchived_dtm
  2. 手动检查并检查出现此问题的项目(请不要让我)

最佳答案

Ignore names of constraints 只忽略约束的名称。仍然评估约束的所有其他属性。当 SQL Server 自动生成这些名称时,您也可以忽略这些名称,因此除非 SQL Server 为您命名约束,否则仍会比较这些名称。

关于sql-server - 使用 Sql Compare 忽略默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22823056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com