【问题标题】:Visual Studio 2013 SQL Server Project Deployment/PublishVisual Studio 2013 SQL Server 项目部署/发布
【发布时间】:2014-04-29 10:49:23
【问题描述】:

我正在寻找有关 Visual Studio 2013 和使用 VS 2013 处理 SQL Server 项目的信息。我们目前正在处理一个项目,该项目正在使用已经存在并由 ERP 应用程序使用的数据库。我们正在创建 SQL 脚本,这些脚本将更改并在目标数据库的表上创建字段。

现在,我们不打算“发布”这些脚本,而是创建部署后脚本,其中包含所有必要的 SQL 脚本,按它们需要运行的顺序排列。一切正常。构建项目时,我们会获得在目标数据库中运行的 PostDeploy.sql 脚本文件的新副本。

目前,脚本查看一个表,如果需要添加的列存在,它会删除它然后重新创建它。这对于测试阶段来说很好,但是一旦我们上线,就会有几个阶段的数据库需要测试代码。该列可能从之前就已经存在,在这种情况下,我们不想删除该列,相反,我们想要进行模式和数据级别的比较,并且只是越过不同的对象,这样该列就不会需要删除,而只是“更新”。希望我问这个问题时不要含糊其辞。

我找到了这个视频:https://www.youtube.com/watch?v=AuVpmu9CKRY,但我不确定这是否是我需要做的?我会喜欢你们的任何建议..

祝你有美好的一天!

【问题讨论】:

    标签: sql deployment sql-server-2012 visual-studio-2013 database-project


    【解决方案1】:

    嗯,这并不是 SSDT/DB 项目的最佳用途。理想情况下,您希望将模式拉入一个项目并调整该项目以使其看起来像您想要的那样。重命名列、更改类型等。因为这听起来像是一个 3rd 方应用程序,所以您需要一些可以作为基准的环境 - 当您运行供应商发送的任何升级脚本时,它会违反该环境。然后,您需要将适当的更改拉入您的项目中。

    一旦您的项目看起来符合您的要求,您就可以针对您的目标数据库使用发布选项。在您的情况下,我可能会建议生成一个脚本。如果您在 VS 环境中,则可以查看脚本和将要更改的内容的摘要。

    对于数据比较,我真的会考虑像 Red Gate 的 SQL 数据比较(如果可以的话,专业版)。您可以根据基线设置数据比较并自动推送数据更改。您可以通过部署后脚本执行此操作,但您需要自己手动编写数据插入、更新和删除代码。

    我以前写过关于 SSDT 的博客,这可能会给您一些想法。 Jamie Thomson 还写了很多关于数据库/SQL 项目的文章,并启发了我所做的很多事情。

    http://schottsql.blogspot.com/2013/10/all-ssdt-articles.html

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      相关资源
      最近更新 更多