SQLServer附加数据库失败
Posted suwu150
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer附加数据库失败相关的知识,希望对你有一定的参考价值。
在导入数据库时我们有时会遇到错误,常见的两种错误的解决办法在这里作一作总结:
一、升级问题
在SQLServer2014中附加数据库时失败,在附加数据库的时候却提示无法升级数据库,错误539。点击消息详情之后能够看到如下错误:
附加数据库 对于 服务器“PC-20160315”失败。 (Microsoft.SqlServer.Smo)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=附加数据库+Server&LinkId=20476
------------------------------
其他信息
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
无法升级数据库 'jspjiaoshidanganxns',因为此版本的 SQL Server 不支持该数据库的非发布版本(539)。不能打开与此版本的 sqlservr.exe 不兼容的数据库。必须重新创建该数据库。
无法打开新数据库 'jspjiaoshidanganxns'。CREATE DATABASE 中止。 (Microsoft SQL Server,错误: 950)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=950&LinkId=20476
出现这种问题主要是由于数据库版本不一致,具体来说是由于要导入的数据库文件版本太低,不能适应新版本软件,对于这种问题,我们只需将需要导入的数据库文件先导入较低版本比如2005或者2008版本的数据库,使用分离技术后然后再到回到SQLServer2014版本,注意在导入时计算机的位数要一致,然后再导入到2014版本中即可。
下面就让我们来看看具体的做法:
1、先将要安装的数据库文件复制到装有SQLServer2005或者SQLServer2008的操作系统中,然后进行导入,其具体过程如下图所示现将如下文件拷贝至拥有SQLServer2005/2008的操作系统:
图1
2、导入数据库:打开SQLServer2005后右键选中“数据库,会出现下拉列表,然后选中“附加”
图2
3、点击“附加”按钮之后,我们能够看到出现如下界面
图3
4、点击“添加”按钮,打开要导入的数据库,然后点击确定按钮,出现如下图所示结果,我们能够清楚地看到数据库已经导入到SQLServer2005中
图4
5、选中已经导入的数据库,如下所选中的文件,右键点击,出现下拉列表,选中“任务->分离”,之后出现如下界面,点击确定:
图5
6、点击确定之后出现如下图所示界面,之前导入的文件已经不见,此时已经完成了转化的工作:
图6
7、接下来我们只需将分理处的文件拷贝到自己所使用的环境,也就是装有SQLServer2014版本的操作系统,继续进行导入工作,如下图所示:
图7
8、点击“附加”之后,我们能够看到和SQLServer2005一样的导入界面,如下图所示
图8
9、按照SQLServer2005导入的方法导入即可,这样我们就完成了附加数据库时由于版本不一致导致的出错问题,即数据库的升级问题。
注:
以下是查询到的Sql Server2012以前的微软所有 Sql Server数据库的内部版本号列表: (Sql Server2012数据库的内部版本号为 706)
Target SQL Server Version | Source SQL Server Version | Internal Database Version |
SQL Server 2008 R2 | SQL Server 2008 R2 | 665 |
SQL Server 2008 | 661 | |
SQL Server 2005 with vardecimal enabled | 612 | |
SQL Server 2005 | 611 | |
SQL Server 2000 | 539 | |
SQL Server 2008 | SQL Server 2008 | 661 |
SQL Server 2005 with vardecimal enabled | 612 | |
SQL Server 2005 | 611 | |
SQL Server 2000 | 539 | |
SQL Server 2005 SP2+ | SQL Server 2005 with vardecimal enabled | 612 |
SQL Server 2005 | 611 | |
SQL Server 2000 | 539 | |
SQL Server 7 | 515 | |
SQL Server 2005 | SQL Server 2005 | 611 |
SQL Server 2000 | 539 | |
SQL Server 7 | 515 | |
SQL Server 2000 | SQL Server 2000 | 539 |
SQL Server 7 | 515 | |
SQL Server 7 | SQL Server 7 | 515 |
通过以上表,我们就可以很快理解这个错误提示了。如果要查看Sql Server的内部版本号,也可以通过下面的Sql句来查看:
SELECT DATABASEPROPERTYEX('MASTER','VERSION')
二、权限问题
在导入数据库时,出现如下所示问题
图1
这是由于权限问题,即Windows系统权限与SQLServer数据库之间的权限,对于这种问题,我们有以下解决办法
(一):修改权限
1、对于jspjiaoshidanganxns_Data.MDF的数据库文件,右键选中点击属性,选择TAB标签“安全”,如下图所示,选中“Authentiated Users”点击编辑按钮:
图2
2、接着出现如下所示界面,赋予用户完全控制命令,点击“应用”,“确认”按钮
图3
3、对于jspjiaoshidanganxns_Log.LDF文件同样使用上述方法进行操作,然后进行导入即可顺利完成
(二)复制到SQLServer数据文件夹
1、如下图所示将需要导入的数据库复制到DATA文件夹下,其路径为安装路径下的:G:\\SQL Server2014\\Program Files\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER\\MSSQL\\DATA
2、接着进行导入即可顺利完成导入工作
以上就是SQLServer附加时常见的问题
以上是关于SQLServer附加数据库失败的主要内容,如果未能解决你的问题,请参考以下文章
sql数据库附加失败sql server2005 附加的数据库文件都是只读的
我使用SQL server 2008附加2005的数据库,但是出现错误!