gpt4 book ai didi

sql-server - sqlPackage.exe 不包括部署脚本中删除的存储过程

转载 作者:行者123 更新时间:2023-12-03 16:27:00 25 4
gpt4 key购买 nike

我在 Visual Studio 中有一个 SQL Server 数据库项目,并且删除了一个现有的存储过程。我在本地也有一个数据库,其中存在确切的存储过程。

当我在 Visual Studio 中对两者运行架构比较时,在生成的架构比较窗口中,我可以看到将在生成的部署脚本中删除的存储过程。但是,当我从 Powershell 脚本调用 sqlPackage.exe 时,生成的部署脚本不包含存储过程的 drop 语句。有趣的是,当我对存储过程进行更改时,它会包含在生成的部署脚本中,并带有一个 alter 语句。

为什么 sqlPackage.exe 在删除 drop 存储过程语句但将其包含以进行更改时省略了它?我觉得这是我需要提供给 sqlPackage.exe 的参数设置,但他们似乎选择退出,而不是选择加入( https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_7 )。

以下是我从 Powershell 发出的命令:

& 'sqlPackage' '/Action:Script' "/SourceFile:$sourceDacpacFile" "/TargetFile:$targetDacpacFile" "/OutputPath:$outputPath" "/TargetDatabaseName:$targetDatabaseName" "/p:AllowIncompatiblePlatform=$allowIncompatiblePlatform" "/p:BlockOnPossibleDataLoss=$blockOnPossibleDataLoss" "/p:DropIndexesNotInSource=$dropIndexesNotInSource"

最佳答案

看房 DropObjectsNotInSource

指定当您发布到数据库时,数据库快照 (.dacpac) 文件中不存在的对象是否将从目标数据库中删除。此值优先于 DropExtendedProperties。

默认为 错误 见:DacDeployOptions.DropObjectsNotInSource Property

关于sql-server - sqlPackage.exe 不包括部署脚本中删除的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41015535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com