SQL Server数据库项目未正确处理新脚本文件创建

时间:2016-09-28 11:27:22

标签: visual-studio database-project

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

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

步骤

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

1 个答案:

答案 0 :(得分:1)

这是一个有趣的场景。我会在其中一天检查出来。

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