问题标签 [sqlcompare]

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 投票
1 回答
80 浏览

sql-server - 如何在 SQL 比较中比较脚本文件夹从 TFS 到数据库时检测 TFS 数据库 CLR 程序集文件

我正在尝试使用 SQL 比较从我的 TFS 项目创建一个数据库。

目前,我们使用 Visual Studio 中的比较工具将我们的数据库项目与 CI 数据库进行比较,但是,我被要求最终将其作为构建步骤作为自动化部署的一部分运行。

问题* SQL 比较无法识别在 Visual Studio 中生成的数据库程序集文件。因此,一些使用 clr 函数的计算列在部署时失败。

我成功地使用 SQL Compare 将以前脚本化的数据库脚本写入“脚本文件夹”。接下来,我将我的 SQL 比较左侧指向那个新的“脚本文件夹”,右侧指向一个新的数据库,并且在左侧检测到程序集文件。

然后,我尝试将数据库程序集文件复制到 Visual Studio 数据库项目位置,但没有成功。

我将生成的文件“Database.xxx.dacpac”文件解压缩到一个文件夹中,并在 SQL 比较中设置我的左侧比较。SQL 比较抱怨“发现缺少元数据文件的脚本文件夹”。我点击“比较”后还有其他错误,但我忽略了它们。但是我的汇编文件出现了!这应该是正确的过程吗?假设我删除了所有警告?

我希望能够将我在 Visual Studio 中的数据库项目文件与新数据库进行比较,并在 SQL Compare 中更新它

0 投票
0 回答
78 浏览

powershell - 有没有更快的方法通过 powershell 运行 SQL 比较?

我们目前使用自家编写的 PS 脚本,将开发人员的本地 SQL 数据库与实时数据库进行比较,以生成部署脚本。我们通过 powershell 使用 Redgate SQL Compare,通常这样调用它(其中 $SQLComparepath 是 SQLcompare 的可执行文件的文件路径):

我们发现虽然这可行,但为大量对象生成脚本需要很长时间,因为我们为每个对象串行调用 exe。我已经搜索了文档,没有看到一次传递多个参数的任何方法。有谁知道通过 powershell 或其他方式调用 SQL Compare 的更有效方法?

谢谢!

0 投票
0 回答
24 浏览

visual-studio - 为什么我无法在 Visual Studio 中使用 SQL SchemaCompare 连接到数据库?

Microsoft Visual Studio Professional 2019 版本 16.9.6

我想使用(以前)非常有用的工具 -> SQL Server -> 新模式比较进行模式比较。但是,即使我的服务器资源管理器中有许多保存的数据连接,当我尝试为源或目标选择它时,我想要的(\production uk_live)不可用:

在此处输入图像描述

如果我尝试即时创建连接,那也会失败 - 突出显示的数据库名称下拉列表永远不会填充(并且没有预先输入或自动完成)。

在此处输入图像描述

我记得几年前使用 Schema Compare 没有任何问题……这已经退步了吗?

0 投票
0 回答
41 浏览

sql-server - VS SQL 架构比较 - 创建时有时缺少架构 [dbo].[xxxxxx]

我正在使用 VS 2019 并使用 Schema Compare 比较 2 个数据库。大多数情况下,它可以很好地发现差异并复制它们。但是,在某些存储过程中,由于缺少模式名称,它会突出显示差异。例如 [dbo]

例子:

左面板(本地数据库)

在右侧面板(远程数据库)上,它正确显示了架构名称:

如果我运行更新,它将创建此存储过程的另一个版本,但它不属于 dbo 模式 - 它将采用连接的模式名称。

它只对少数存储过程执行此操作。其余的都添加了[dbo]。到每个 create 语句。

我不知道为什么我必须在远程数据库上手动创建 SP,然后在比较中为每一个执行排除操作,这样它就不会在远程删除我的新 SP 并在没有 [ 的情况下创建新的德博]。

有人有任何想法或以前见过吗?

我不认为我正在以任何不同的方式创建原始 SP(本地)。只是一个空白的新查询窗口并输入它并按 F5。

提前致谢,