使用VS 2010数据库管理示例数据

时间:2010-10-04 15:14:26

标签: database visual-studio-2010 tfs tfs2010

我在Visual Studio 2010中使用数据库项目来管理我的所有数据库代码。

对于我的应用程序,我们将每个客户端的数据分成他们自己的数据库副本,并使用一个公共数据库将用户映射到相应的数据库。

我想在TFS中保留几个不同的样本数据集以及代码,并且能够根据需要有选择地部署其中一个。

我为两个不同的客户端数据库创建了脚本,并将它们保存在tfs的部署后目录中。我想维护另一个我们用于演示和单元测试。

有没有办法:在SQLCMD中有条件的r?是否有其他建议或最佳做法如何做到这一点?我一直在阅读Visual Studio 2010 Database Projects Guidance Document,但还没有找到任何东西。

提前感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:3)

在将变量添加到项目并在脚本中检查之前,我处于正确的轨道上。

有两个小抓点:

  1. 在.sqlcmdvars文件中,变量值的值需要包含它周围的单引号
  2. 此方法生成包含所有示例数据的单个脚本,但只执行变量指定的脚本。随着示例数据变得更加完整,这将成为一个非常大的文件,但这应该适合我的目的。我可以看到这将如何成为真正大型数据集的交易破坏者。此外,各个脚本不能包含GO分隔符,因为它包含在BEGIN END块中。
  3. 这是我的档案:

    /* All deployments get the reference data */
    :r .\ReferenceData.PostDeployment.sql
    
    IF ('$(SampleSet)' = 'ClientA')
    BEGIN
        :r .\SampleData.ClientA.PostDeployment.sql
    END
    ELSE IF ('$(SampleSet)' = 'ClientB')
    BEGIN
        :r .\SampleData.ClientB.PostDeployment.sql
    END
    

    感谢Jamie Thomson和this article的引用值位。

答案 1 :(得分:0)

可能不是你想要的,而是为了方便数据库的创建和安装。人口来自.Net审查广泛迁移工具的使用情况。我的偏好(Migrator.NET)可以在那里找到完整的评论:http://flux88.com/blog/net-database-migration-tool-roundup/