问题标签 [sqlpackage]

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 回答
18989 浏览

sql-server - 通过命令行部署 SQL Server 数据库项目 (SSDT)

我有一个针对 SQL Server 2012 RC0 数据库的 SQL Server 数据库项目。该项目是在 Visual Studio 2010 + SQL Server Data Tools CTP4 中创建的。(项目类型不同于常规的 Visual Studio 2010 数据库项目——它是 SQL Developer Tools CTP3 Juneau 的下一个版本)

它在 IDE 中部署良好。如何通过命令行部署它?

我尝试了 VSDBCMD.exe,但它需要一个不是由新项目类型创建的 .deploymanifest 文件。

0 投票
2 回答
26861 浏览

publish - 如何通过 SSDT 的 SQLPackage.exe 将 DACPAC 文件发布到 SQL Server 数据库项目?

我在这里使用 SSDT for Visual Studio 2012并使用其命令行工具SQLPackage.exe发布 .dacpac 文件。

我想将其发布到SQL Server database project. 我正在尝试在本指南中使用参数,但找不到方法。

我怎样才能做到这一点?

0 投票
1 回答
2218 浏览

arguments - 使用 TargetDatabaseName 或 tdn 参数调用 SQLPackage 'publish' 时出错

作为调用动作时的 SQLPackage 手册,我们publish有参数TargetDatabaseNameor tdn(in section Target Parameters)

但是当将此参数添加到 SQLPackage 调用时,我收到错误消息,指出该参数无效。

例子:

那是一个错误吗?我们如何解决这个问题?

目前我必须使用/tcs:“连接字符串在这里”

0 投票
0 回答
298 浏览

error-handling - 调用 SSDT 的 SQLPackage.exe 时检测“数据丢失”发布操作的最佳方法

使用 publish action调用 SQLPackage.exe(此处/a:Publish描述的语法)时,有时data loss会发生并停止执行;这是通过设置参数 /p:BlockOnDataLoss 指定的(默认为“true”)。

我需要知道我的publish操作是成功还是由于“数据丢失”而失败。

目前成功时,返回的退出码为0。失败时,我们只返回退出码为1。我们不能说失败是data loss不是由该引起的。我们如何识别这一点?

在控制台输出的某处,我们看到包含“...正在删除,可能发生数据丢失”的行。所以我打算扫描打印的每一行输出,但我想应该有其他更好的方法来做到这一点。

希望听到你的想法。

0 投票
4 回答
5568 浏览

synchronization - SqlPackage.exe 发布可以在目标数据库上删除不存在对象的 .dacpac 文件的正确参数是什么?

正如我们可以使用SqlPackage.exeVisual Studio 2012 中的 Microsoft SSDT 来同步数据库,如此所述,我正在使用它来同步目标数据库,称为TargetDb,以与存储在 SQL Server 数据库项目中的源数据库对象匹配,称为DbProject.

/a:Publishcommand的操作SqlPackage.exe允许我们将 DbProject 的 .dacpac 文件同步到 TargetDb,但默认参数不会删除 TargetDb 中不存在的 DbProject 对象

打开标志/p:DropObjectsNotInSource=true会解决这个问题,但也会产生奇怪的行为

  1. 该标志/p:DropObjectsNotInSource=true将删除 TargetDb 上的用户/登录对象,这绝对不是预期的!我能找到的最接近的是/p:DropRoleMembersNotInSource=false /p:DropPermissionsNotInSource=false,但那些没有多大帮助。
  2. 该标志/p:DropObjectsNotInSource=true将打破标志/p:BlockOnPossibleDataLoss=true,这意味着如果发生数据丢失,更新操作将不会被阻止;那根本不是我想要的。

目前我必须接受 TargetDb 上的“垃圾”/冗余对象 :(

有什么更好的标志可以让我到达那里?

0 投票
3 回答
5935 浏览

sql-server-data-tools - SQLPackage 错误:已添加具有相同键的项

我从 SQLPackage 收到此错误:“已添加具有相同密钥的项目”是什么意思?谷歌不会帮助我..

"c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe" /Action:DeployReport /SourceFile:"XXX.dacpac" /Profile:"publish.xml" OutputPath:"Report.xml "

为服务器“srv”上的数据库“XXX”生成报告。

*已添加具有相同密钥的项目。

没有创建输出文件。

从 Visual Studio 工作生成脚本(我得到一个脚本)。我在同一个解决方案中测试了三个项目。只有一个人创建了一个 DeploymentReport 文件。

发表作品。

0 投票
2 回答
1936 浏览

sql - SSDT - 在没有 dacpac 的情况下构建部署脚本

我有一个关于使用 SSDT 构建部署脚本的问题。谁能告诉我是否可以使用 SQLPackage.exe 构建部署脚本,其中源文件不是 dacpac 文件,而是使用 .sql 文件?

为了提供一些背景知识,我在 Visual Studio 2012 中为我的数据库架构创建了一个项目。这很好用,SSDT 可以毫无问题地构建文件夹结构(包含所有 .sql 文件的函数、存储过程等)。

这就是问题所在 - 有问题的数据库来自遗留系统,并且充满了错误。我们不再关心这些错误中的大多数,并且将它们全部修复是不切实际或安全的,因此多年来我们基本上忽略了它们。但是,这意味着我们无法构建项目,因此无法生成 dacpac 文件。现在这并不妨碍我们进行模式比较并将数据库与文件系统(本地 mercurial 存储库)同步。但是,它似乎确实阻止了我们构建部署脚本。

我正在寻找的是一种使用 SQLPackage.exe 构建部署脚本的方法,而无需生成 dacpac 文件。我需要改用文件系统中的 .sql 文件。Visual Studio 将在不构建 dacpac 的情况下生成差异脚本,所以这让我认为必须可以使用 SQLPackage.exe 使用其中一个参数来完成它。

这是一个 SQLPackage.exe 的示例,我想对其进行调整以使用 .sql 文件而不是 dacpac:

这很好用,因为它使用 dacpac 文件。但是,我需要将其指向 .sql 文件所在的文件夹结构。

任何帮助都会很棒。

0 投票
3 回答
27146 浏览

sql-server-2014 - 使用 SqlPackage.exe 将 DACPAC 发布到 SQL Server 2014?

我已经使用 SqlPackage.exe 成功地将 DACPAC 发布到 SQL Server 2008-2012 实例,由 SQL Server Data Tools 安装(通常在 中找到C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin)。但是,在尝试使用相同的 SqlPackage.exe 将面向 2014 的 DACPAC 发布到 SQL Server 2014 实例时,我得到以下信息:

我发现有关此的最少信息;我发现最接近的是发布到 Azure的问题。

我一直在更新 SSDT 补丁,但我猜我拥有的 SqlPackage.exe(显示 11.0.2902.0 版本)根本不兼容。我可以使用 Visual Studio 2012 的 Publish 命令发布到同一个实例,因此实例本身似乎不是问题。

是否有更新版本的 SqlPackage 可以支持将 2014 DACPAC 发布到 2014 服务器?或者另一种可编写脚本的方式来做到这一点?

0 投票
1 回答
4325 浏览

amazon-web-services - 如何将 SQLPROJ DACPAC 部署到 Amazon RDS

我们一直使用 .sqlproj 扩展名使用 VS2012 SSDT 进行数据库设计和开发,并使用带有 DACPAC 的 SQLPackage 部署到 SQL Server ......或者从 Visual Studio 设置发布规则。

我们已将数据库迁移到 Amazon RDS SQL Server。

我们最近对数据库设计进行了一些更改,我尝试发布更改,但出现此错误。

我到处搜索如何将这种类型的数据库项目发布到亚马逊,而不是求助于为架构维护本地 SQL Server 数据库并购买 Red-Gate SQL 比较来迁移更改。我很难过。

任何建议将不胜感激。

0 投票
1 回答
2771 浏览

sql-server - 在文件中记录 sqlpackage.exe 错误

我正在使用 SQlPackage.exe 来部署/发布数据库项目。我想在单独的日志文件中记录发布活动,例如创建数据库/表或任何修改。但似乎 sqlpackage.exe 中没有选项来记录此信息

其次,如果我以某种方式停止之间的 sqlpackage 部署(因为我使用的是 bat 文件并且从那里我调用 sqlpackage.exe 命令),那么它不会回滚所有更改。

请注意,我已经启用了包含跨国脚本的选项。通过启用此功能,部署后脚本不在事务块中。换句话说,如果事务后脚本中有错误但架构中没有错误,则架构部分将被正确部署,这将在部署后脚本中引发错误。因此我的数据库处于不一致状态。我的观点是,如果有任何错误,它应该回滚所有内容。