从VS 2010数据库项目转换后的SSDT项目结构

3

将VS 2010 DB项目转换为SSDT(SQL Server Data Tools)项目后(并与数据库和SSDT项目进行比较),我收到了以下文件夹结构:

  • Project
    • Data Generation Plans
    • dbo
      • Tables
      • Views
    • Schema Comparisons
    • Schema Objects
      • Database Level Objects
        • ...
      • Schemas
        • dbo
          • Programmability
          • Service Broker
          • Synonymns
          • Tables
          • Views
    • Scripts
      • Post-Deployment
      • Pre-Deployment
    • Security

似乎有些表和视图在Project\Schema Objects\Schemas\dbo下,而有些在Project\dbo下。

实际问题如下:

  1. 为什么会有两个不同的文件夹?
    (我怀疑导入有关。)

  2. 我能否将这些文件合并到一个文件夹中,如果可以,应该选择哪个文件夹?

  3. 如果不能,新文件应该添加到哪个文件夹中?

  4. 如果我在导入时选择了创建备份,备份信息保存在哪里?-我想要删除它。


编辑:

另一个不一致之处 - Project\dbo\Tables下的文件包含键和约束,而Project\Schema Objects\Schemas\dbo\Tables下的文件被分开(表分开,约束分开等)。


我在 MSDN 上问了同样的问题,链接在这里:http://social.msdn.microsoft.com/Forums/da-DK/ssdt/thread/cd57aa97-57e9-44bd-9040-79bbce818e04 - Danny Varod
当源是一个已更新的项目时,模式比较的更新被禁用了。直接从数据库重新创建项目后,问题得到解决。 - Danny Varod
2个回答

3

当我从DB Pro 2005升级到DB Pro 2008时,也遇到了同样的问题。我还没有转换为SSDT格式,但在之前的情况下,我只是将文件合并回旧文件夹。

然而,在某些情况下,如果重建项目很容易或数据库项目相对较新,我会重新制作项目。(如果重新创建/重新导入,则会失去源代码控制中文件的历史记录。)


2
似乎从VS 2010 dbproj导入的文件位于Project\Schema Objects\Schemas\dbo\Tables,而之后添加的所有内容都在Project\dbo\Tables下。
新的定义没有分成不同的文件和文件夹(表、索引、键等),这使得文件系统路径更浅,阅读有关特定表的所有信息更容易(特别是如果键/索引/约束被删除,然后您将其与旧版本的表文件进行比较)。
将表移动到Project\dbo\Tables并将卫星文件的内容移动到主文件中似乎可以解决问题(您需要在文件中的命令之间添加“GO”)。
另一个选项是通过将数据库与项目进行比较来创建一个数据库,删除旧文件,然后通过将项目与数据库进行比较以新格式重新创建它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接