您当前的位置:首页 > 互联网教程

为什么sql server 高版本的数据库不能附加低版本 mdf文件

发布时间:2025-05-23 15:45:51    发布人:远客网络

为什么sql server 高版本的数据库不能附加低版本 mdf文件

一、为什么sql server 高版本的数据库不能附加低版本 mdf文件

1、是这样的,662是SQL Server 2008 SP2以后的数据库版本号,SP2之前的SQL Server 2008

2、的数据库版本好是655,而661是SQL Server 2008 R2的数据库版本号,本身SQL Server 2008 R2的版本要比SQL Server 2008要高,按常理661版的数据库文件是不能附加到支持655版本号的SQL Server 2008里的。至于出现这个蛋疼的提示是因为微软在SQL Server 2008 SP2里加入了15k分区数的功能,而发布SP2之前就已经发布了SQL Server 2008 R2了,由于SQL Server 2008 R2 RTM并不支持15k分区的功能,如果按常规SQL Server 2008还保持655的版本号的话就可能会出现附加15k分区的数据文件到SQL Server

3、2008 R2 RTM中,这肯定是不能附加的,所以微软为了解决这个难题,就打破常规,SQL Server 2008 SP2里将数据库的版本号改为662,这样,由SQL Server 2008 R2 RTM的数据库版本号比SQL Server 2008 SP2的低,所以自然就不能附加了,避免了麻烦,不过为了一15k分区的功能改变了版本号带来的副作用就像楼主这种情况了。

4、其实说白了,你是拿SQL Server 2008 R2的数据库附加到SQL Server 2008中,这肯定是不行的。要么将你现在的数据库实例升级到 SQL Server 2008 R2并安装最新的SP补丁之后再附加。要么将chat数据库附加到SQL Server 2008 R2版的数据库实例里,生成SQL Server 2008版的脚本文件,使用脚本文件部署到SQL Server 2008 SP2里。

5、至于前边有朋友说用备份的方式,如果理解了我前边说的就知道肯定也是行不通的。

二、MSSQL Server2000数据库分离与附加

1、如果您数据库系统安装在系统盘(比如C盘)由于C盘容易受病毒侵害您也许希望您的数据存放在非系统盘(比如D盘)要做的这点很简单您并不需要重装数据库只要把数据“分离”然后将相关文件复制到D盘的某个目录接着“附加”数据库即可

2、 SQL Server允许分离数据库的数据和事务日志文件然后将其重新附加到同一台或另一台服务器上分离数据库将从SQL Server删除数据库但是保持在组成该数据库的数据和事务日志文件中的数据库完好无损然后这些数据和事务日志文件可以用来将数据库附加到任何SQL Server实例上这使数据库的使用状态与它分离时的状态完全相同

3、数据库分离和附加其实很简单您即使是初次接触数据库做起来也很容易

4、点击“程序》Microsoft SQL Server》企业管理》”打开企业管理器

5、展开服务器组然后展开服务器选中要分离的数据库

6、点击鼠标右键“所有任务》分离数据库”出现如下窗口

7、点击确定该选定的数据库就被分离

8、应注意只有“使用本数据库的连接”数为时该数据库才能分离所以分离数据库时尽量断开所有对要分离数据库操作的连接如果还有连接数据库的程序会出现数据库的连接状态窗口显示正在连接此数据库的机器以及名称点击清除按钮将从服务器强制断开现有的连接

9、在附加数据库之前您必须将与数据库关联的 MDF(主数据文件) LDF(事务日志文件)这两个文件复制到目标服务器上或是同一服务器的不同文件目录下这两个文件一般位于C Program FilesMicrosoft SQL ServerMSSQLData目录下

10、点击“程序》Microsoft SQL Server》企业管理》”打开企业管理器

11、右击"数据库"然后选择“所有任务》附加数据库”弹出窗口

12、输入要附加的数据库的MDF名称如果不确定文件位于何处单击浏览("")搜索若要确保指定的 MDF文件正确请单击"验证"在"附加为"框内输入数据库的名称数据库名称不能与任何现有数据库名称相同指定数据库的所有者

三、附加数据库 是什么意思怎样 附加数据库

Microsoft�0�3 SQL Server�6�4 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到另一台服务器,甚至同一台服务器上。分离数据库将从 SQL Server删除数据库,但是保持在组成该数据库的数据和事务日志文件中的数据库完好无损。然后这些数据和事务日志文件可以用来将数据库附加到任何 SQL Server实例上,包括从中分离该数据库的服务器。这使数据库的使用状态与它分离时的状态完全相同。

如果想按以下方式移动数据库,则分离和附加数据库很有用:

1.从一台计算机移到另一台计算机,而不必重新创建数据库,然后手动还原数据库备份。

2.移到另一物理磁盘上,例如,当包含该数据库文件的磁盘空间已用完,您希望扩充现有的文件而又不愿将新文件添加到其它磁盘上的数据库。

将数据库或数据库文件移动到另一服务器或磁盘:

2.将数据库文件移到另一服务器或磁盘。

3.通过指定移动文件的新位置附加数据库。

当附加在数据库上时,必须指定主数据文件的名称和物理位置。主文件包含查找由数据库组成的其它文件所需的信息,除非自分离了数据库后那些文件中的一个或多个已改变了位置。除主文件外,还必须指出其它任何已改变位置的文件。否则,SQL Server将试图基于存储在主文件中的不正确的文件位置信息附加文件,且不能成功附加数据库。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库用于复制,则应运行 sp_removedbreplication从数据库中删除复制。或者,可以在分离数据库之前从数据库中删除复制。

分离数据库时所产生的错误可能会防碍干净地关闭数据库和重建事务日志。如果收到错误信息,请执行下列操作以纠正错误:

1.重新附加所有与数据库相关联的文件,而不仅是主文件。

示例B创建一个包含下列物理文件的名为 Archive的数据库:

c:\program files\microsoft sql server\mssql\data\archdat1.mdf

c:\program files\microsoft sql server\mssql\data\archdat2.ndf

c:\program files\microsoft sql server\mssql\data\archdat3.ndf

c:\program files\microsoft sql server\mssql\data\archlog1.ldf

c:\program files\microsoft sql server\mssql\data\archlog2.ldf

可以使用 sp_detach_db存储过程分离该数据库,然后使用带有 FOR ATTACH子句的 CREATE DATABASE重新附加。

--使用 sp_detach_db存储过程分离该数据库

sp_detach_db ArchiveGO--使用带有 FOR ATTACH子句的 CREATE DATABASE重新附加