问题标签 [schema-compare]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
72 浏览

.net - 如何查看数据库更新历史

如果我有一个连接到 Azure Sql db v12 的数据库项目,有没有办法查看我在该数据库上运行的“架构更新”的历史记录?类似于 Git 的提交历史?我知道有一种叫做重构日志的东西,我环顾四周看看是否有帮助,但似乎没有。提前致谢。

0 投票
0 回答
57 浏览

sql-server - SQL Server - 数据库选项“PageVerifyMode = 3” - 对此有任何参考吗?

我正在将两种不同的架构与 Visual Studio 2010 进行比较。

我在数据库选项方面有所不同,特别是:

PageVerifyMode = 3 -- my source object

PageVerifyMode = 1 -- my target object

这里有两个问题:

1.该选项如何影响数据库,值 3 是什么意思?

已编辑: 我已经检查过:PAGE_VERIFY两个数据库中都存在 CHECKSUM,因此PageVerifyModePAGE_VERIFY.

2. 如何更改值以反映源对象中的内容?

由于与我的登录相关的错误,我无法在 Visul Studio 中创建架构更新脚本,并且除了set the PAGE_VERIFY to Checksum or torn page detection.

任何帮助将不胜感激。

谢谢!!

0 投票
2 回答
2172 浏览

sql-server - Visual Studio 2015 Update 2 和 Sql Server 2016 架构比较

我最近升级到 Visual Studio 2015 Update 2 并且一切都很顺利,但是现在当我尝试从数据项目对 Sql Server 2016 数据库进行架构比较时,它表明我需要在数据库中创建所有对象。这在此更新之前运行良好。

比较初始化时出现以下错误:

尝试对 Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlDatabaseCredential 类型的元素进行逆向工程时出错:逆向工程期间的批处理命令失败,错误代码:-2146232060 行号:2267 错误消息:列名无效compression_delay。列名无效compression_delay

有谁知道是什么导致了这个问题?提前致谢。

0 投票
1 回答
83 浏览

sql-server - MSSQL Schema 比较 T SQL

我在同一台服务器上有 21 个数据库,它们“应该”具有相同的架构(目前仅将架构限制为表架构),但它们没有。在我所处的环境中,我无法按照合规性规则安装任何工具/应用程序。我能想到的唯一方法是在 excel 中提取所有 21 个 DB 的模式并进行比较,但它很乏味。

有人可以指导我开发一个可以比较所有 21 个数据库的架构并突出差异的 T-SQL 吗?

这些是我需要的列: Table_Name ,列名,数据类型,最大长度,is_nullable,is_replicated,主键

下面的 T-sql 为我提取了这个信息。我需要一些关于如何比较 21 个数据库的信息的想法

我需要一个起点

0 投票
2 回答
1796 浏览

sql - 包括但不删除 SQL 架构比较

我正在尝试在 Visual Studio 2013/15 中使用 SQL Schema Compare,并且遇到了从删除中排除表会使它们完全无法处理的问题。

问题是它试图删除的表是客户制作的表,所以当我们将我们的版本与他们的数据库同步时,它会要求删除它们。我们不想删除它们,但是它们的一些表对我们的表有限制,因此当它尝试 CCDR 时,由于表限制而失败。有没有办法添加表(重新创建?像其他表一样?),而不需要为每个客户端编写脚本来执行 SQL Schema Compare 已经为那几个表所做的事情?

Red-Gate 的 SQL Compare 以某种方式做到了这一点,但它对我们隐藏,所以不太确定它是如何实现的。排除不会删除,但也不会在脚本上出错。

更新:

选项“删除不在源中的约束”似乎无法正常工作。它确实放弃了一些,但是还有其他一些它只是没有放弃约束。在 red-gate 的工具中,当我们比较时,我发现了如何从中获取 SQL,他们的产品根本没有说表需要更新,而 Visual Studio 的有。它们似乎工作起来几乎相同,但失败的表是根本不应该更新的表(阅读下文)

更新 2:

我发现的另一个问题是“忽略列排序规则”也不能正常工作,因为不应该被删除的表被告知它们需要更新,即使它只是列更改的顺序,而不是实际的列或数据变化,这让人感觉更像是一个错误报告。

忽略列排序检查

仍然显示列排序规则

0 投票
1 回答
159 浏览

visual-studio - Windows 10 升级后,Visual Studio 2013 在 SQL 架构比较中的 SQL 选择源/目标上崩溃

使用现有架构比较文件或新创建的比较文件。

试图通过以下方式更改源或目标:

菜单:“SQL” 选择:“选择源...”或“选择目标...”

Visual Studio 2013 然后崩溃并显示消息:“Microsoft Visual Studio 2013 已停止工作......”

0 投票
1 回答
1307 浏览

visual-studio - 如何通过 Visual Studio Schema Compare 不断显示差异?

我在 Visual Studio 2013 的解决方案中创建了一个数据库项目,并从 SQL 服务器导入了一个数据库。然后我做了一个 SQL 比较;源是数据库,目标是数据库项目。比较结果显示我的一张表已更改。我看到的唯一变化是格式的差异,所以我告诉它更新目标。它进行了更新,我进行了新的比较,它向我展示了同一张表具有相同的差异。以下是一些差异示例:

  1. 左侧的内容连续三行,右侧的内容中有一两个空白行——第 56、58 和 59 行是空白的。
  2. 左侧的内容格式为三行:
    FOR INSERT、
    UPDATE、
    DELETE
    ,而右侧的内容相同:
    FOR INSERT、UPDATE、DELETE
  3. 左侧没有尾随分号:
    FROM 已删除
    ,而右侧有尾随分号:
    FROM 已删除;

我如何达到比较说“一切都一样;没有差异”的地步?我没有修改本地数据库项目中的表;有谁知道为什么 Visual Studio 以不同的格式保存它,我能做些什么?“忽略空格”复选框被选中。

0 投票
1 回答
1660 浏览

sql-server - 在 Visual Studio 和 SQL Server 中按架构名称比较架构

我有一个带有默认架构和自定义架构的 SQL Server 数据库。因此,例如两个表可能是database.dbo.table1database.customschema.table2

我想将“customschema”保留在源代码控制之下,并且我已将其加载到我的 Visual Studio SQL Server 数据库项目中。

当我使用Tools -> SQL Server -> New Schema Comparison... 实用程序时,它会返回所有数据库模式的差异。

它会将所有“dbo”表显示为在数据库项目中不同/已删除,即使我不打算将它们保留在源代码控制下的项目中。

有没有办法限制结果以显示我的数据库项目与“customschema”对象的实际数据库之间的差异?

0 投票
2 回答
3510 浏览

c# - C# 自动模式比较 SQL 数据库和更新列表

我可以知道.Net 中是否有任何库可以让我传入 2 个连接字符串并进行架构比较和更新?

我需要这个的原因是因为我维护了一个黄金数据库,它为不同的客户部署到多个数据库。如果每次有数据库更新时我都需要从 VS 手动进行模式比较会消耗很长时间。

我计划遍历所有客户端连接字符串并与黄金数据库进行比较并自动更新它们。

请指教,谢谢。

0 投票
1 回答
1840 浏览

sql-server - sqlPackage.exe 不包括部署脚本中删除的存储过程

我在 Visual Studio 中有一个 SQL Server 数据库项目,并且我已经删除了一个现有的存储过程。我在本地也有一个数据库,其中存在确切的存储过程。

当我从 Visual Studio 中对两者运行架构比较时,在生成的架构比较窗口中,我可以看到将在生成的部署脚本中删除的存储过程。但是,当我从 Powershell 脚本调用 sqlPackage.exe 时,生成的部署脚本不包含存储过程的删除语句。有趣的是,当我对存储过程进行更改时,它会包含在生成的部署脚本中,并带有一条 alter 语句。

为什么 sqlPackage.exe 在我删除它但包含它以进行更改时省略了删除存储过程语句?我觉得这是我需要提供给 sqlPackage.exe 的参数设置,但它们似乎选择退出,而不是选择加入(https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_7)。

以下是我从 Powershell 发出的命令: