gpt4 book ai didi

sql - 自动创建数据库比较脚本并执行

转载 作者:行者123 更新时间:2023-12-04 03:03:14 25 4
gpt4 key购买 nike

我有一种情况,我必须将我的数据库版本(架构)与我的所有客户端(可能是不同的版本)进行比较,并部署必要的更改以使所有版本都相同。我正在寻找一种方法,可以自动将我的数据库模式与客户的模式进行比较,生成差异脚本并执行它以确保所有版本都相同。

我知道 Red Gate 和类似工具,但问题是我需要从我的客户端获取架构(这很难获取)。

提前致谢。

最佳答案

我终于得到了这个问题的可能解决方案。我正在使用 SqlPackage生成 dacpac 的实用工具,将客户的 dacpac 与我的进行比较,创建差异脚本并部署更改。

命令如下

创建 Dacpac

sqlpackage.exe /Action:Extract /SourceServerName:DbServer /SourceDatabaseName:DbName /TargetFile:"C:\Working Folder\Client.dacpac" /p:IgnoreExtendedProperties=True /p:IgnorePermissions=False /p:ExtractApplicationScopedObjectsOnly=True /p:IgnoreUserLoginMappings=True /p:VerifyExtraction=True

比较Dacpacs并生成部署脚本

sqlpackage.exe/a:Script /sf:"C:\Working Folder\Primary.dacpac" /tf:"C:\Working Folder\Client.dacpac" /tdn:"DbName" /op:"C:\Working Folder\DifferenceScript.sql"

运行脚本

sqlcmd -S DbServer -i "C:\Working Folder\DifferenceScript.sql" -o "C:\Working Folder\Output.txt"

Output.txt 文件包含部署的结果。所以我所要做的就是运行这些命令,它会处理所有事情。

这是另一个有用的 link .

关于sql - 自动创建数据库比较脚本并执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47062775/

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