问题标签 [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.

0 投票
2 回答
2089 浏览

visual-studio-2012 - 数据工具数据库项目:自动创建漂亮的文件夹结构

当我将 DACPAC 导入 VS SS DT 项目时,它为我创建了一个非常好的文件夹结构:我的所有模式都定义在名为“Security”的文件夹下,然后每个模式都有自己的命名文件夹,其中包含名为“Tables”的文件夹,“存储过程”等。但是,如果我右键单击项目名称并选择添加>表,新表只是添加到项目的根目录中。这似乎根本不对。有什么方法可以让 VS 遵守我导入 DACPAC 时创建的有组织的文件结构?

0 投票
1 回答
5186 浏览

sql-server - 使用 SQL Management Studio 在适用时生成智能默认值

我目前正在开展一个项目,将我们的数据库作为数据层应用程序发布。该数据库相当复杂,在使用 SQLPackage.exe 或通过 Visual Studio 发布时需要修改几个参数。

目前阻止我将项目设置为完成的场景之一是:

我们有一个不可为空的列被添加到表中,我们在发布 dacpac 以允许 dacpac 完成时应用“SmartDefaults,如果适用”为真,这很好用。

什么不工作是:

在 SQL Management Studio 中使用升级数据层应用程序时。它不允许我指定相同的选项,这会阻止数据库正确升级。

有没有人能够做到这一点?

0 投票
1 回答
1108 浏览

dacpac - 无效的对象名称错误:DACPAC 部署使用 SQLPackage.EXE

将 DACPAC 部署到 SQL 服务器 (SQL 2014 – 12.0.2430) 时遇到问题。这是我得到的错误:无效的对象名称 dbo.usp_SomeStoredProcedure_Update。

如果我正在更改存储过程,就会发生这种情况。不过,数据库项目已成功构建。我正在使用 VS 2013 Update 4 来构建数据库解决方案。

这是我正在触发的命令:

“C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\SQLPackage.exe” /TargetDatabaseName:DBName /TargetServerName:ServerName /Action:Publish /SourceFile:DBName.dacpac /p:IncludeTransactionalScripts=true /p :BlockOnPossibleDataLoss=false /p:DropIndexesNotInSource=false /p:GenerateSmartDefaults=true

知道会发生什么吗?

0 投票
1 回答
707 浏览

sql-server - 从 dacpac 获取计算列的 DataType

通过 C# 代码遍历Dacpac时,我能够确定计算列 ( GetReferenced(Microsoft.SqlServer.Dac.Model.Column.ExpressionDependencies)) 中引用了哪些列,以及该列的表达式是什么(Microsoft.SqlServer.Dac.Model.Column.Expression属性)。我找不到的是计算列的数据类型。

除此之外,我也找不到检索表列的方法FileTable(尽管这是一组静态列)。

搜索引擎不会带我走远;在这个主题上找不到那么多资源。

0 投票
2 回答
1045 浏览

web-deployment - MSDeploy/WebDeploy - 通过 DacPac 部署复合数据库项目

我们有一个数据库项目,其中包含连接到另一个数据库中的表的视图。另一个数据库在不同的解决方案中。在我们从另一个数据库中添加对 DacPac 的引用之前,它无法构建。我相信这些视图被认为是“复合数据库对象”,因为它们引用的对象不是作为脚本包含在数据库中,而是在 DacPac 中引用。我们可以成功地将这个项目从VS部署到目标数据库。

现在我们正在尝试通过 MSDeploy 自动化部署。过去,我们通过从清单创建一个包,成功地使用 DacPacs 部署了非复合数据库项目。例如:

但在这种情况下,部署失败并出现以下错误:

错误 SQL0:无法解析来自名为“Other.dacpac”的源对外部元素的引用,因为没有加载此类源。警告 SQL72025:没有提供文件供参考 Other.dacpac;部署可能会失败。创建包时,原始引用文件位于 D:\BUILDS\6\CORE SERVICES\ACME DB (DEV2-DEPLOY)\SOURCES\ACME.SQLDEPLOY\DACPACS\Other.DACPAC。

错误:添加引用时出错。部署无法继续。错误计数:1。

是否有确保引用的 DacPac 将其放入包中并成功完成部署的技巧?

0 投票
2 回答
3092 浏览

sql-server - 存储过程更改未反映在 dacpac 脚本中

我添加了一个新的存储过程并将其添加到我的 sqlproj 文件中。但是当我生成脚本来发布我的数据库时,这些更改并没有反映在生成的脚本中。

0 投票
2 回答
1335 浏览

deployment - 发布管理 > DACPAC - 算术运算导致溢出

问题:

无法通过 Powershell 脚本部署 DACPAC。此脚本适用于大约 20 个已配置用于发布管理的其他数据库服务器。

工作环境:

  1. 视窗服务器 2008 R2
  2. 电源外壳 2.0
  3. SQL Server 2008 R2 64 位
  4. Visual Studio 高级版 2012 更新 4
  5. 适用于 Visual Studio 2012 的 SQL Server 数据工具
  6. Visual Studio 2013 Update 4 的发布管理部署程序

非工作环境

  1. 视窗服务器 2008 R2
  2. 电源外壳 2.0
  3. SQL Server 2012 64 位
  4. Visual Studio 高级版 2012 更新 4
  5. 适用于 Visual Studio 2012 的 SQL Server 数据工具
  6. Visual Studio 2013 Update 4 的发布管理部署程序

命令:

在哪里:

Publish_DEFAULT.xml包含以下键:

日志

发布到数据库初始化部署(开始)初始化部署(失败)发生意外失败:算术运算导致溢出..

未处理的异常:System.OverflowException:算术运算导致溢出。在 System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean IntegratedSecurity, Boolean & marsCapable) 在 System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean在 System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) 在 System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo) 的 trustServerCert,布尔集成安全,布尔 withFailover ,1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 次重试,DbConnectionOptions userOptions)在 Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.<>c__DisplayClass8的 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.<OpenConnection>b__0() at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.<>c__DisplayClass4.<ExecuteAction>b__3(RetryState retryState) at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction[R](Func2 func, Nullable 1 token) at Microsoft.Data.Tools.Schema.Common.SqlClient.RetryPolicy.ExecuteAction(Action1 action, Nullable 1 token) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableSqlConnection.OpenConnection() at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.OpenConnection(String connectionString, Boolean useRetry) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.OpenConnection(SqlConnectionStringBuilder csb, Action1 usingConnection, Predicate 1 cancelToken)。 1 catchException, Boolean useRetry) at Microsoft.Data.Tools.Schema.Common.SqlClient.ReliableConnectionHelper.GetServerAndDatabaseVersion(String connectionString, ServerAndDatabaseInfo& info) at Microsoft.Data.Tools.Schema.Sql.SqlDatabaseSchemaProviderFamily.DetermineDatabaseSchemaProvider(String connectionString) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.GetProviderType(DatabaseSchemaProviderFamily connectionSniffer, String connectionString, Type& providerType, Boolean& validDataSource) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnInit(ErrorManager errors, String targetDBName) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment..ctor(SqlDeploymentConstructor constructor) at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentConstructor.ConstructServiceImplementation() at Microsoft.SqlServer.Dac.DacServices.CreatePackageToDatabaseDeployment(String connectionString, IPackageSource packageSource, String targetDatabaseName, DacAzureDatabaseSpecification creationDefaults, DacDeployOptions options, ErrorManager errorManager) at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.<>c__DisplayClass5.<CreatePlanInitializationOperation>b__1() at Microsoft.Data.Tools.Schema.Sql.Dac.OperationLogger.Capture(Action action) at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.<CreatePlanInitializationOperation>b__0(Object operation, CancellationToken token) at Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken) at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacAzureDatabaseSpecification creationDefaults, DacDeployOptions options, CancellationToken cancellationToken, DacLoggingContext loggingContext) at Microsoft.SqlServer.Dac.DacServices.Deploy(DacPackage package, String targetDatabaseName, Boolean upgradeExisting, DacDeployOptions options, Nullableb__0(DacServices 服务)在 Microsoft.Data.Tools.Schema.CommandLineTool.DacServiceUtil.ExecuteDeployOperation(字符串 connectionString,字符串文件路径,MessageWrapper messageWrapper,布尔 sourceIsPackage,布尔 targetIsPackage,Func 1 generateScriptFromPackage, Func2 generateScriptFromDatabase)在 Microsoft.Data.Tools.Schema.CommandLineTool。 DacServiceUtil.DoDeployAction(DeployArguments parsedArgs, Action1 writeError, Action2 writeMessage, Action`1 writeWarning, CancellationToken cancelToken) 在 Microsoft.Data.Tools.Schema.CommandLineTool.Program.PerformAction(CommandLineArguments parsedArgs) 在 Microsoft.Data.Tools.Schema.CommandLineTool.Program.DoDeployActions(CommandLineArguments parsedArgs) 在 Microsoft。 Data.Tools.Schema.CommandLineTool.Program.Run(String[] args) 在 Microsoft.Data.Tools.Schema.CommandLineTool.Program.Main(String[] args)

附加评论:

两种环境之间的唯一区别是 SQL Server 的版本......但是,我确实有一台运行 SQL Server 2012 的服务器!

我以服务的身份运行了 Powershell 脚本:Microsoft Deployment Agent ... 相同的日志文件错误;但是,sqlpackage.exe 抛出以下错误:

问题签名:问题事件名称:CLR20r3 问题签名 01:sqlpackage.exe 问题签名 02:12.0.2743.1 问题签名 03:5438200c 问题签名 04:System.Data 问题签名 05:4.0.30319.18408 问题签名 06:52310bef 问题签名 07: 28b2 问题签名 08:6e 问题签名 09:System.OverflowException 操作系统版本:6.1.7601.2.1.0.272.7 区域设置 ID:1033 附加信息 1:d90e 附加信息 2:d90ee7d582c41ae7b6b96ca9c0463ab1 附加信息 3:5e41 附加信息 4:5e411ccaac60cb66751cc900cf

0 投票
0 回答
65 浏览

asp.net - 完整的 Web 部署包 -> Web 应用程序和数据项目

我试图创建一个包的产品是一个 Web 应用程序和一个数据库项目。此包需要部署到多个 IIS 网站,这些网站分别拥有自己的应用程序池和绑定。最后,我希望 TFS 构建服务器将包构建成一个 .zip 文件,通过在部署时设置网站、应用程序池、绑定和目标数据库,可以通过 msdeploy.exe 以某种方式将其部署到这些网站. 如果项目不存在,它应该创建,如果存在则更新。

我一直在研究 Web Deploy 3.0。我通过谷歌在互联网上找到的大部分内容都是关于在 Visual Studio 中定义包和发布,这并不是我想要的,因为我希望能够在部署时控制设置。到目前为止,我可以通过 Visual Studio 2013 中的“发布”对话框创建一个相对简单的包。我什至可以使用“发布”窗口中的“更新数据库”复选框将我的 SSDT 项目 dacpac 文件添加到包中。但我认为很多事情发生在幕后,这似乎不符合逻辑如何手动进行。

最终,我现在希望有人可以帮助我的问题是:

  • 部署包时如何在部署时定义 dbdacfx 设置?(即目标 sql 服务器、数据库、用户名和密码。)或者我可以以某种方式将这些设置参数化到 parameter.xml 文件中吗?我可以使用我的 SSDT 项目中的发布配置文件 xml 文件吗?

  • 如果我的包不存在,如何让我的包创建一个新网站?我只能找到有关在现有站点下创建应用程序的信息。

  • 何时以及如果我通过包创建网站,如何定义关联的应用程序池?比如如果它不存在就创建它,或者如果目标框架不正确就更新它?

  • 我读过有关提供者的信息。例如 appPoolConfig 提供程序,但如何在部署时使用它对我来说不是很清楚 - 任何人都可以详细说明或指出解释它的来源吗?

  • 有没有关于这个领域的好书,或者甚至是更好的选择?

0 投票
0 回答
62 浏览

database - MsDeploy 使用 dbDacFx 重置序列值

我正在尝试通过使用 dacpac 文件更新架构来部署数据库。我在 MsDeploy 中使用 dbDacFx 函数。除了目标数据库的序列被重置为数据库项目中声明的默认值之外,一切似乎都运行良好,这是我不希望发生的。我没有看到任何 DacDepl oyOptions 来忽略序列值。

有没有办法在这个过程中排除序列值的重置。

0 投票
3 回答
2189 浏览

sql - 使用可变域用户登录创建用户脚本

我们有一个具有创建用户脚本的 DACPAC。用户有一个登录需要设置为 Windows 域用户当我们为测试/暂存/发布进行构建时,我们需要能够为用户登录应用不同的域和用户。

我以为我们可以使用 SQLCMD 变量,但在尝试使用此脚本时出现 SQL71501 错误该脚本如下所示: