Visual Studio Database Pro部分项目约束问题

时间:2009-01-28 21:11:55

标签: visual-studio-dbpro

在Visual Studio 2008数据库版本中,可以使用“部分项目”将数据库分成多个项目以进行部署和维护。我一直在考虑用我们的项目做这个,但是遇到了以下问题:

如果您有定义某些基表的项目,然后您有一个不同的项目,该项目定义了一组新的表,这些表具有指向第一个项目中的表的约束,DBPro似乎无法映射此关系。具体错误是:

  

“CONSTRAINT有一个未解析的对表foo的引用”(其中foo在原始数据库中)。

一个更具体的例子,如果您想自己复制场景:

  • 创建一个名为BaseDB的项目。

  • 在BaseDB中定义一个名为Users的表,其中包含以下DDL:

    CREATE TABLE [dbo].[Users] ( 
        UserID INT IDENTITY(1,1) PRIMARY KEY, 
        UserName NVARCHAR(20) NOT NULL
    )
    
  • 将BaseDB导出为将_BaseDB.files文件添加到项目的部分项目。

  • 在名为DerivedDB

  • 的同一解决方案中创建项目
  • 使用Import Partial Project指向BaseDB,确认您是否喜欢导入文件中存在指向BaseDB中Users表的存根引用。

  • 使用以下DDL在DerivedDB中定义名为PowerUsers的表:

    CREATE TABLE [dbo].[PowerUsers] ( 
        PowerUserID INT IDENTITY(1,1) PRIMARY KEY, 
        UserID INT NOT NULL
    )
    
  • 如果您此时进行“构建”,一切正常。

  • 将DerivedDB项目中的FOREIGN KEY CONSTRAINT从PowerUsers添加到具有以下DDL的用户:

    ALTER TABLE [dbo].[PowerUsers]
        ADD CONSTRAINT [PowerUsers_Users_FK]
        FOREIGN KEY (UserID)
        REFERENCES [dbo].[Users] (UserID)
    

执行上述步骤应该可以让您看到我正在谈论的错误。

问题:

  1. 有没有办法修复数据库项目中的约束引用?

  2. 如果没有,那么是否应该为一系列存储过程保留部分项目,并为基本表和约束的所有 DDL保留基础项目?

0 个答案:

没有答案