【问题标题】:SQL Server Database Project not handling new script file creation correctlySQL Server 数据库项目未正确处理新脚本文件的创建
【发布时间】:2016-09-28 11:27:22
【问题描述】:

在 Visual Studio 中使用 SQL Server 数据库项目时,如果数据库中有超过 1000 个存储过程,则在导入时,Visual Studio 会将这些过程拆分到单独的目录中。

当您尝试在此类导入后通过“架构比较”功能将任何新存储过程同步到项目中时,Visual Studio 会忘记这种拆分文件夹结构,并将所有新脚本直接放入“存储过程”文件夹中。这意味着脚本化的新存储过程不适合现有结构,这迫使用户要么使用这种分离的结构,要么手动更新项目引用并将文件复制回 Visual Studio 创建的初始结构。

步骤

  1. 创建一个新的 SQL 项目。
  2. 在解决方案资源管理器中右键单击项目 > 选择“导入”>“数据库”。
  3. 将项目绑定到一个 SQL2008 数据库,该数据库存储了 1000 多个 程序。为“每个文件夹的最大文件数”选择 1000。
  4. 允许 VS 编写所有存储过程的脚本。它会自动 分成1000个批次并创建一个新文件夹'Proc1','Proc2' 必要时为每批。
  5. 通过右键单击 SQL 项目打开新的比较 > 选择“架构比较”。
  6. 通过将 SQL 项目与您的项目进行比较来验证已正确同步的数据库 原始数据库。应该没有待处理的更改。
  7. 在已同步的数据库中创建一个新的存储过程。
  8. 再次运行比较,现在应该会显示新的存储过程 在“添加”类型下。
  9. 单击“更新”并允许 VS 为新过程创建脚本。
  10. 不是将新脚本放置在原来的 1000 分隔文件夹结构中,而是将新脚本直接放置在“存储过程”文件夹中。

【问题讨论】:

    标签: visual-studio database-project


    【解决方案1】:

    这是一个有趣的场景。这些天我会检查一下。

    这是我的 2 美分。在将所有数据库对象初始加载到数据库项目中后,我(或开发团队)停止通过 SSMS 将新 SP 或任何对象直接添加到数据库的做法。相反,我将它们添加到数据库项目并部署到我需要它们去的所有服务器。从那时起,数据库项目就像真正的代码源一样。最重要的是,您可以利用 TFS 分支功能来保留数据库项目的 QA 版本和 Prod 版本。我还尝试为文件夹命名有意义的名称,以便对 Stored Proc 文件夹下的 SP 进行分类,这有助于我以后的代码维护。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      相关资源
      最近更新 更多