背景:个人电脑中使用的是VS2012,数据库为2008R2,最近需要打开一个SqlServer2012的数据库
如果在本机安装一个2012的数据库可能比较浪费时间,本来是想在如万网等服务商那边购买一个2012的数据库来使用的,但发现目前的服务商最高提供的数据库为2008R2
既然不想安装新的数据库版本那就只能在现在的环境中想办法了,还好在VS2012中提供了一个本地的数据库引擎于是尝试通过2012 localdb来附加现有的数据库
经过一番摸索终于解决:
在使用Sqlserver2012 Express Localdb之前需要安装sqllocaldb(大概只有几分钟时间)
原理:因为在Vs数据库管理中是无法直接附加数据库的,所以通过在Vs中建立的数据库并将你的数据库替换掉Vs中建立的数据库来实现的
VS2012中提供了一个本地的数据库引擎 SQL Server 2012 Express LocalDB ,通过VS2012可以很方便的管理和使用本地数据库
但Localdb的实例名跟之前的实例是有区别的来连接时使用(localdb)\实例名如(localdb)\v11.0[v11.0是localdb默认的一个实例名]
连接字符串参考:http://www.connectionstrings.com/sqlconnection/
1.通过Vs2012在V11.0实例中添加一个新的数据库如:Test,Test数据库默认地址为“C:\Users\你的用户名\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0”
2.关闭vs2012程序并结束sqlserver服务,并将要使用的数据库(DB2012)的.mdf和.ldf文件复制到上面的Test数据库文件夹中
如果没有关闭Vs或Sqlserver服务在更改数据库文件时不可能会出现以下错误
3.将Test数据库删除或更名(.mdf和.ldf)
4.将你的数据库DB2012更名为Test(.mdf和.ldf)实现数据库的替换
5.重新打开VS2012将连接到v11.0实例中就可以看到Test数据库中的信息是之前DB2012的信息了
我的使用说明:从网上下载了个Ninesky的文章部分,他的数据库是2012localDB,连接字符串如下:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Ninesky.mdf;Initial Catalog=Ninesky;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
我的电脑上sql server版本为2008R2,所以附加不上,但是我安装了VS2015,VS2012里开始有localDB这个本地数据库,2015里肯定也有,怎么用那?先打开工程,右侧有个服务器资源管理器,为vs集成的数据库,在此数据连接上右键修改连接,弹出如图3所示的修改连接窗口,点击高级,弹出如图4所示的高级属性,在DataSource栏里,就会显示当前的数据库源,选择(LocalDb)\MSSQLLocalDB点击确定,返回图3点击测试连接按钮,测试成功,如图5所示。