【问题标题】:Database project - running Build Action=None SQL scripts数据库项目 - 运行 Build Action=None SQL 脚本
【发布时间】:2014-04-30 21:47:28
【问题描述】:

当我从 Visual Studio 数据库项目中选择“发布...”时,除其他外,它看起来像是在数据库上运行项目的脚本,但只运行那些将构建操作设置为“构建”的脚本。换句话说,构建操作“无”脚本不会作为发布的一部分在数据库上运行。

我有一个数据库项目,但我没有该项目中的所有数据库项目。 我仍然可以在我的项目中保留脚本(例如,存储过程)并在数据库上运行它们吗?怎么样? 如果我将它们设置为“构建”,则会出现构建错误,因为它们所依赖的项目不在项目中。如果我将它们设置为“无”,它们根本不会在数据库上运行。有没有办法让它们在不需要依赖项的情况下在数据库上运行?如果没有,最好的方法是什么?

【问题讨论】:

  • 你能给我们介绍一下为什么整个数据库不在项目中的背景吗?这是第三方数据库吗?尝试了解,以便我们为您提供最佳指导。
  • 因为其他人会在这个项目之外更新数据库对象,并且因为数据库很大,我的团队将使用版本控制只负责其中的一部分。
  • 如果您将当前数据库的副本拉入 dacpac,然后将其添加为数据库引用,您也许可以避免这种情况。这应该为您提供您正在维护的对象所需的所有依赖项。不过,我不能说它将如何从那里发布。那将是要测试的东西。如果你想走这条路,你还可以编辑该 dacpac 并重新签名以删除额外的对象。
  • 仅供参考的脚本 Build Action=None 不应该在发布期间运行,只有在 Build Action 是 PreDeploy 或 PostDeploy 时才运行。最好的方法是通过解决这些依赖关系来修复构建错误。

标签: sql-server visual-studio database-project


【解决方案1】:

您可以尝试在脚本上将构建操作设置为无,然后从部署后脚本运行脚本。

每个数据库项目中只能有一个部署后脚本。您可以通过添加新项目并搜索部署后来添加它。在脚本中,您使用命令语法来执行脚本。

http://www.mssqltips.com/sqlservertutorial/3006/working-with-pre-and-post-deployment-scripts/

【讨论】:

    【解决方案2】:

    似乎没有办法做我正在寻找的事情;数据库项目旨在解决所有依赖关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      相关资源
      最近更新 更多