问题标签 [dacpac]
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.
sql - 通过 SqlPackage.exe 更新数据层应用程序版本
我目前正在使用 SqlPackage.exe通过命令行自动部署我的应用程序数据库,但无法找到更新我的数据层应用程序版本的方法
(发展,当然……)
http://msdn.microsoft.com/en-us/library/hh550080%28v=vs.103%29.aspx
我正在使用 /Action:Publish 来推送我新建的 *.dacpac,但版本始终保持在 v1.0.0.0,如果这是不可能的?如何更改 ExtendedProperty?
我只想通过查看数据库来参考安装的版本。
有任何想法吗?
c# - 如何遍历 dacpac
我们希望将 dbproj 升级到 sqlproj,以便我们可以将其指向新的 SQL 2012 数据库。我们现在有一个程序可以读取 .dbschema xml 文件以查找所有表和列并从中检索信息。我们使用这些数据来构建我们自己的自定义类。
新的 sqlproj 文件现在生成一个 dacpac,我们要对其进行查询以获取我们需要的数据。我编写了以下内容来尝试遍历 dacpac 并获取我需要的信息:
我不知道我这样做是否正确,或者是否有更好/更简单的方法。我不确定要在 Google/SE 上搜索什么,也找不到任何示例。
我可以看到变量列有一个名为 ContextObject 的非公共成员,它是一个 Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlSimpleColumn。如果我可以访问这个对象,那么我就可以从中提取我需要的所有信息。Table 也有一个类似的 ContextObject 可以帮助我。
无论如何,目前这会打开 dacpac 并检索所有表和列名。我得到的数据的一个例子是:
基本上,我想做以下其中一项:
- 访问 ContextObject 以获取 Microsoft.Data.Tools.Schema.Sql.SchemaModel.* 对象或
- 从 ObjectType 属性中获取属性和元数据的值或
- 以更简单的方式从头开始获取这些信息
我们需要获取诸如列类型、是否可以为空以及列的比例和精度等信息
powershell - 使用 DACFx 3.0 API 升级 DACPAC - 如何检查现有数据库的当前 DAC 版本?
我目前正在重写我团队的数据库部署 Powershell 脚本以使用 DACFx 3.0 API 而不是 2.0。Microsoft.SqlServer.Dac.DacServices
使用新的控制器类,我已经设法使 DACPAC 升级成功运行。
剩下的唯一问题是:如何从现有数据库中获取当前的 DACPAC 版本号?
作为我们部署脚本的一部分,我们将其与我们要升级到的 DACPAC 版本进行比较,以确定是否需要部署。这也用于决定是否运行与数据库相关的测试,因此我们可以减少大量构建时间。
旧的 DacFx2.0 API 位于Microsoft.SqlServer.Management.Dac
命名空间中,因此在旧的 Powershell 脚本中,我们只是创建了一个DacStore
从数据库连接中创建了一个对象并从中获取 Version 属性:
我们的旧 POWERSHELL 脚本
现在在 3.0 中的问题是,API 存在于Microsoft.SqlServer.Dac
命名空间中,并且“不再使用以前版本中的DacStore
和DacExtractionUnit
类,大多数内容都已重构为全新的DacServices
控制器类。(src)”
我还没有DacStore
在DacServices
课堂上找到等效的,所以到目前为止我不知道如何检索当前的 DAC 版本。我试过搜索 MSDN 文档,但他们所有的 Powershell 部分仍然引用旧的 DACFx2.0 API。(例如:这里)。
如果有人可以帮助我,将不胜感激。谢谢!
visual-studio-2012 - DACPAC 不包括复合对象
我有一个 VS2012 数据库项目,其中包括表、存储过程、视图等。
然后我有第二个数据库项目,其中包含对第一个项目的数据库引用。我已确保从“项目属性 -> 调试 -> 高级”菜单中选择了“包括复合对象”选项。
当我构建第二个项目并获取生成的 DACPAC 文件并通过 SSMS2012 部署它时,它不会创建第一个项目的对象。
我错过了什么吗?为什么复合对象不包含在 DACPAC 中?
sql - SQL 脚本中的错误:每批只允许一个语句
我有 4 个 sql 脚本,我想在 PostDeployment 的 DACPAC 中运行,但是当我尝试为其中 3 个构建 VS 项目时,我收到此错误:
脚本仅包含INSERT
数据库上不同表中的语句。它们的结构都是这样的
仅在不同的表和不同的数据上。
我的问题是,当所有脚本在语法和操作方面都相同时,为什么 VS 会抱怨其中的 3 个?
PS:按照错误提示在语句之间添加“GO”不会做任何事情。
sql-server - 不支持用于 xml 的 dacpac
当尝试从包含使用“for xml”的函数的数据库中导出数据层应用程序或 dacpac 时,每个函数和依赖于该函数的每个对象都会失败,并且我无法创建 dacpac。向导将这些对象报告为不受支持。
数据库: SQL Server 2008 R2
函数失败的错误:
[dbo].[fn_FunctionName] () 失败取决于此数据库中不存在的对象“[XmlData].[value] (UnresolvedEntity)”。
示例查询:
sql-server - 什么是“具有指定 instance_id 的 DacInstance 不存在。(Microsoft SQL Server,36004)”?
我正在尝试使用 dacpac 升级远程 SQL Server 2012 数据库,但收到以下消息:具有指定 instance_id 的 DacInstance 不存在。(微软 SQL 服务器,36004)。我试图在互联网上搜索,但找不到任何东西。有任何想法吗?
.net - 在 dacpac 文件中包含 DLL
我希望使用 SMO 将 dacpac 部署到远程 SQL 环境中,远离我自己的开发机器。在我的项目中,我引用了一个 .dll 文件,当我按下“构建解决方案”时,该文件会输出到我的构建目录中。
是否可以将 .dll 文件与 dacpac 捆绑在一起,或者我是否必须将引用的文件与 dacpac 文件一起放到远程服务器上的指定文件夹中才能引用它们?
目前我在远程环境中部署时收到错误“没有为参考 dll 提供文件”,因为即使我将“复制本地”设置为 true,dacpac 也没有在其中包含 dll。
打开 Model.xml 时,我可以看到该文件指向我的硬盘驱动器上的引用位置,如何更改它以动态查看输出的 dacpac 文件夹?
谢谢
sql-server - 如何从两个 dacpacs 获取数据更改作为更新脚本
从两个 .dacpac 文件中,我可以使用以下命令获取更新脚本
sqlpackage.exe /Action:Script /SourceFile:"C:\Test\bin\Debug\Test.dacpac" /TargetServerName:localhost\DenaliRC0 /TargetDatabaseName:deploy_Test
然而,这只会产生 DDL 更改(模式更改)。但这不包括任何数据更改。无论如何我可以从两个 dacpacs 中获取这些数据更改 (DML) 吗?
Flowing 是我用来获取架构更改的 java 代码。
sql-server-2008 - SSDT 项目构建失败 - 在调试模式下拒绝访问 dacpac 文件
我正在尝试构建一个 SSDT 项目。运行“构建”时收到以下错误消息:
- 拒绝访问路径“whateverMyPathIs\bin\debug\myProjectName.dacpac”。
- 03061:无法删除文件“whateverMyPathIs\bin\debug\myProjectName.dacpac”。拒绝访问路径“whateverMyPathIs\bin\debug\myProjectName.dacpac”。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets
我注意到的事情:
- 当我在“发布”模式下构建项目时,我没有收到上述错误消息。
- 我尝试使用 Process Explorer 来查看 dacpac 文件是否正在被任何其他进程使用并且无法找到任何内容。
- 从项目设置/构建中,如果我将“构建输出路径”从“bin/debug”更改为其他不同的地方,构建工作正常。
- 重新启动机器后,我现在只收到有关“拒绝访问......”的第一条错误消息。没有出现以 03061 开头的错误消息。
我正在使用 Visual Studio 2012、SQL 2000 R2、SSDT 2012