SSDT SQL Server 数据库项目中架构比较的命令行/API? [英] Command-line/API for Schema Compare in SSDT SQL Server Database Project?

查看:28
本文介绍了SSDT SQL Server 数据库项目中架构比较的命令行/API?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Visual Studio 2012 中,我们有 <SSDT'中的代码>架构比较s SQL Server Database Project (DbProject) 项目,帮助

In Visual Studio 2012, we have Schema Compare in SSDT's SQL Server Database Project (DbProject) project which helps

  1. 比较 sourcetarget
  2. 更新 target 使其与 source
  3. 相同
  1. Compare source versus target
  2. Update target to make it the same as source

哪里

  1. 源和目标可以是数据库、DbProject 项目或 .dacpac 文件
  2. 更新可以通过更新操作生成的脚本
  3. 完成

我的问题是是否有可能以及在哪里可以获得命令行/API 接口来调用此功能?

My question is that is it possible to have and where can I get the command-line/API interface to call this feature?

推荐答案

SOURCE 数据库

sqlpackage.exe/a:Extract/scs:Server=%Server%;Database=AspBaselineDB;/tf:%DriveSpec%\%DacPath%\%AspBaselineDB%_baseline.dacpac

目标数据库

sqlpackage.exe/a:Extract/scs:Server=%Server%;Database=%AspTargetDB-2%;/tf:%DriveSpec%\%DacPath%\%AspTargetDB%.dacpac

比较 &生成 Delta 脚本

sqlpackage.exe/a:Script/sf:%DriveSpec%\%DacPath%\%AspBaselineDB%_baseline.dacpac/tf:%DriveSpec%\%DacPath%\AspNetDb\%AspTargetDB%.dacpac/tdn:aspTargetdb/op:%DriveSpec%\%SqlPath%\AspNetDb\AspDbUpdate.sql

执行脚本

sqlcmd.exe -S %Server%\aspnetdbAmexDev -i %DriveSpec%\%SqlPath%\AspNetDb\AspDbUpdate.sql

我在 CMD 脚本中执行此操作,因为我们的 IT 部门不允许未签名的 PowerShell 脚本,他们也不会购买证书.即使从 TFS 2012 Team Builds 调用它,或者只是以管理员身份从 VS 命令提示符执行 .CMD 脚本,这也能完美运行.

I do this in CMD scripting as our IT dept will not allow unsigned PowerShell scripts and they won't purchase a cert. This works flawlessly, even when calling it from TFS 2012 Team Builds or simply executing the .CMD script from a VS command prompt as Administrator.

注意!

在脚本中添加以下 SET:SET PATH=%PATH%;C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin

Add the following SET in your script: SET PATH=%PATH%;C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin

另外:如您所见,我设置了路径变量.我这样做是因为我接触了多达 50 种版本的数据库,这是我发现的唯一一致的生成增量脚本和更新我们的 DEV 和 TEST 数据库的方法.

Also: as you can see I set path variables. I do this as I am touching up to 50 flavors of the database and this is the only consistent way I have found to generate delta scripts and update our DEV and TEST databases.

这篇关于SSDT SQL Server 数据库项目中架构比较的命令行/API?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆