如何在SSDT解决方案中更改SqlLocalDB(localdb)实例的标准名称?

时间:2012-10-02 15:29:51

标签: sql-server-data-tools

我经常需要使用SSDT项目打开几个解决方案。这些解决方案具有相同的名称并且具有微小的差异,即它们仅来自源控制系统中的不同分支。但是这些解决方案总是尝试使用相同的(localdb)实例来虚拟化其项目的数据库。这导致冲突,冻结和结束Visual Studio进程的必要性。

所以问题如下:有没有办法配置(localdb)实例的名称,以便在具有相同名称的解决方案中打开和虚拟化一组SSDT项目?

2 个答案:

答案 0 :(得分:1)

我很确定如果数据库的名称至少有所不同,那么Visual Studio的多个实例在使用单个共享(localdb)\ instance时不会出现问题。我尝试了它,除了数据库争用之外没有其他问题(即使解决方案和数据库命名相同)。

当然,我可以看到如何能够处理托管具有相同名称的DB的几个不同实例。例如,您在各种代码分支中同时工作:主干,某些修补程序分支和功能分支。

我想不出一种非常优雅的方式,但是这里有你可以用来组合的部分:

1)使用“sqllocaldb”实用程序创建所需的每个localdb实例。您可以在预构建事件中执行此操作,或者只在开发人员系统上执行此操作。防爆。

sqllocaldb.exe create "myinstance1"

2)问题在于配置它......如果您使用VS的“调试”部署(在按F5时部署),则必须为您正在使用的每个不同解决方案手动更改它。如果您使用“发布配置文件”您可以为每个不同的数据库实例配置一个配置文件,但在调试应用程序之前,您必须手动部署数据库。

您是否依赖localdb进行团队构建和自动化集成测试?这可能会改变一切。

以下是一些其他信息:http://msdn.microsoft.com/en-us/library/hh510202.aspx

答案 1 :(得分:1)

用于调试和构建过程的目标数据库的配置(F5)可以在以下位置完成:

项目属性 - 调试 - 目标连接字符串。

因此,您可以将具有相同名称的分支项目指向您选择的不同数据库实例。