问题标签 [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 投票
1 回答
789 浏览

sql-server-data-tools - SSDT/SqlPackage 丢弃统计信息

在构建期间,我们基于 SSDT .sqlproject 生成数据库的 dacpac 文件。这个 dacpac 稍后会使用 sqlpackage 部署到生产环境中。尽管使用了 /p:DropStatisticsNotInSource=False 开关,sqlpackage 将删除所有统计信息,这些统计信息是在 sqlproject 与生产数据库的最后一次同步之后添加的。

我们还可以使用发布配置文件和 SSDT 的生成脚本选项来重现这一点:

我们如何强制 sqlpackage 不删除统计信息?

0 投票
1 回答
1589 浏览

sql-server-data-tools - 错误 SQL72014:找不到变量 DatabaseName - DacPac、SSDT、SqlPackage.exe

我无法意识到我做错了什么并在互联网上找到了一些东西。
有谁知道以下部署停止器的原因是什么?

可能这就是 DacPac 的众多设置。

0 投票
1 回答
589 浏览

visual-studio - 为什么 SqlPackage Script Action 和 VisualStudio Generate Script 会产生不同的结果?

我们有一个带有发布配置文件的 Visual Studio 数据库项目,根据我是使用 Visual Studio 的Generate Script选项还是命令行中的 SQL Package 来生成不同的更改脚本:

  • Visual Studio 创建一个 10,455KB 的文件。
  • SqlPackage 使用以下命令创建一个 8,835KB 的文件:SqlPackage /a:Script /sf:pub.dacpac /pr:pub.profile.xml

关于如何观察命令行 VS 用于生成其脚本的任何建议?任何想法当两个进程都使用以下发布配置文件时可能会有什么区别?

0 投票
1 回答
756 浏览

sql-server-data-tools - 使用 DacServices 部署时获取目标机器上的 SqlServer Dac 程序集文件路径

我正在调用 DacServices API 来部署 DACPAC,这需要 Microsoft.SqlServer.Dac 的程序集引用。我运行安装程序的目标机器可能在 D 驱动器上安装了 SSDT/SQL,或者可能安装了更高版本的 SQLServer。

使用 DacServices 部署时,如何在目标机器上动态获取 Microsoft.SqlServer.Dac 程序集文件路径(如果我们使用 SqlPackage.exe,我们会遇到同样的问题,因为我需要动态找出 120/DAC/我运行安装程序的目标上的 bin 或 130/DAC/bin 文件夹)?

或者,如果有人可以针对此问题提出任何其他解决方案,以便相同的 exe 可以在不同的机器/环境中运行,那就太好了。

0 投票
2 回答
6005 浏览

sql-server - sqlpackage.exe:有什么方法可以在导出时忽略用户?

我正在尝试创建一个 bacpac 文件以将我的数据库导出到 azure。
在创建导出包()时,是否有让它忽略用户sqlpackage /a:Export

0 投票
1 回答
883 浏览

sql-server - 使用 SqlPackage 导入 bacpac 数据库,检查存在并指定位置

我可以运行SqlPackageimport bacpac,它可以在运行之前检查数据库是否存在,并且还可以指定文件的放置位置.mdf, .ldf?所以当数据库存在时,它不会做任何事情;但如果它不存在,它会为我导入数据库吗?

0 投票
4 回答
599 浏览

sql-server - 防止 SqlPackage 在导出期间写入主分区

要将 144GB SQL Server 数据库移动到 Azure SQL,我想将其导出为 .bacpac 格式。

为此,我使用 SQL 版本 130 的 SQL 包:

但是,这失败了,因为我的主分区(C:,有 39GB 可用空间)在操作过程中耗尽了磁盘空间。正如您在命令中看到的那样,我尝试导出到 D:。似乎导出脚本在 C: 上做了一些临时的事情。

我怎样才能防止这种情况?(我已经检查了默认的 SQL Server 临时路径,它也在 D 上:)

0 投票
2 回答
507 浏览

cmd - 带有日期的 SQLPackage.exe 文件名

我正在尝试使用 SQLPackage.exe 自动将 Azure 数据库备份到我的本地计算机。我正在尝试将日期添加到文件名中,以便每晚都不会被覆盖。以下行将获取日期,但随后将停止备份运行,并出现如下所示的错误

命令

错误

我试过使用

和其他选择,但没有运气。任何人都可以提出任何建议吗?

0 投票
1 回答
406 浏览

sql-server - Linux 上的 SQL Server 无法导出到 bacpac

我正在尝试将我的数据库导出到 .bacpac 文件。我收到以下错误:

我正在使用的命令是:

我要备份的数据库与我的 mssql 安装在不同的 ssd 上。我不知道这是否有区别。

我一直在谷歌搜索如何解决这个问题,大多数使用 Windows 的人通过确保各种 Windows 服务正在运行并在没有运行时启动它们来解决类似的问题。但我不确定如何在 linux 中检查相同的东西,但我认为我需要的所有服务当前都在运行,因为我可以sqlcmd通过 JetBrains 的 DataGrip 应用程序连接到数据库。所以我知道连接是可能的。就是不知道为什么sqlpackage连接不上。。。

更新

按照建议,我试了一下以下命令:

并且错误略有不同:

0 投票
3 回答
1884 浏览

sql-server - 部署包含 $(ESCAPE_SQUOTE()) 的 SQL 更改

我在 Visual Studio 中有一个数据库项目,我试图每晚自动部署到测试环境。为此,我使用了 TFS,它利用 PowerShell 脚本运行“ SqlPackage.exe ”来部署白天发生的任何更改。

我的一些 proc 包含在作为代理作业步骤的一部分的脚本内运行的逻辑,并包含以下代码(在动态 SQL 中):

部署影响此过程的更改时,我遇到以下问题:

SQL 执行错误:发生致命错误。解析 $(ESCAPE_SQUOTE( 时遇到不正确的语法。

这是一个已知问题,似乎不受支持。它似乎是“SQLCmd”命令将 $( 字符误解为变量的函数:

“覆盖发布操作期间使用的 SQL 命令 (sqlcmd) 变量的值。”

那么我该如何解决呢?您无法禁用变量似乎是“sqlcmd”的一个主要限制,我没有看到支持该参数的参数......

更新 1

似乎通过您可以通过提供“-x”参数( SourceDocumentation )来禁用“sqlcmd”中的变量替换:

-x(禁用变量替换)

不过,仍然看不到从“SqlPackage.exe”中执行此操作的方法。