加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SQL server向上不兼容问题 附加数据库出错错误602:——网络数据库

(2012-06-16 16:28:49)
标签:

附加

sql

server

2005

数据库文件

资源管理器

连接

it

分类: asp.NET
“附加数据库时出现错误:602 ,说未能在sysindex 中找到数据ID为8中对象ID为1的索引ID 1对应的行。请对sysindex 运行DBCC CHECKTABLE”...
http://s12/middle/729c2ab3xc292e77de57b&690server向上不兼容问题 附加数据库出错错误602:——网络数据库" TITLE="SQL server向上不兼容问题 附加数据库出错错误602:——网络数据库" />


前天数据库胡三华老师给我们拷了几个数据库资料自己去学习,一个server 2005 的数据库文件结果我的电脑安装的是2000,附加数据库直接是不行的,网上找到“第一个”解决方案:

   错误602:未能在sysindexes中找到数据库ID11中对象ID1的索引ID1对应的行,请对sysindexes运行
DBCC CHECKTABLE。

如果是采用sqlServer2005的话你用Sql2000附加Sql2005的数据库就会出现这种错误(解决方法:改用SqlServer2005附加一下,如果还想用Sql2000格式那就用导出sql语句等方式进行转换)
用脚本+导数据肯定没有问题。


2005转到2000的步骤步骤
1. 生成for 2000版本的数据库脚本
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 生成脚本
-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
-- 勾选"为所选数据库中的所有对象编写脚本"
-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
-- 其他选项根据需要设置
-- 最后把脚本保存到一个 .sql 脚本文件

2. 在2000中创建目标数据库
在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库

3. 将数据从2005导到2000
2005 的manger studio
-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
-- 右键要转到2000的库
-- 任务
-- 导出数据
-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
但是我没有visalstudio 啊,悲剧。网上还没找到直接办法,的利用脚本连接,转换成2000的。
但是这里建议:如果安装了2000 而后来有安装2005 也有可能出现此问题

问题是出在使用SQL Server Management Studio 2005连接数据库上了,没错,虽然使用的是2005的Management Studio,但是这个连接工具同样可以连接到本机的sql 2000数据库,所以要想共存的话,在安装sql server 2005的时候必须另外选择命名实例,而不能用默认实例,而我当初安装sql server 2005的时候确实是使用的另外的命名实例,只不过在我用Management Studio连接的时候,忘记选择了,所以细节很重要啊!
http://s11/middle/729c2ab3xc292df6a891a&690server向上不兼容问题 附加数据库出错错误602:——网络数据库" TITLE="SQL server向上不兼容问题 附加数据库出错错误602:——网络数据库" />

其他错误
------------------------------

附加数据库 对于 服务器“***”失败。  (Microsoft.SqlServer.Smo)powered by 25175.net

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=../../../Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=附加数据库+Server&LinkId=20476

------------------------------
其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

未能在 sysindexes 中找到数据库 ID 7 中对象 ID 1 的索引 ID 1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE。
Could not find row in sysindexes for database ID 7, object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes.
未能打开新数据库 'eos'。CREATE DATABASE 将终止。 (Microsoft SQL Server,错误: 602)

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=../../../MSSQLServer&EvtID=602&LinkId=20476

 

"SQL Server 2005 附加数据库出错"解决方法


环境:XP SP2操作系统,SQL2005为VS2008自带

问题描述:以管理员身份登录本机,以SA身份登录到SQL2005,执行附加数据库,出现:

附加数据库对于服务器"xx\SQLExpress"失败........无法更新数据库"xxx",因为数据库是只读的.(Microsoft SQL Server,错误:3906)

解决办法:首先确定要附加的数据库是否确为只读,如果是,除去只读属性。
     将要附加的数据库文件的安全设置中设置User用户完全控制权限,设置成功后可以附加.

在QA里执行sp_attach_db或者sp_attach_single_file_db,出现提示:错误1813:未能打开新数据库’dbname’,create database 将终止。设备激活错误。物理文件名’d:sql servermssqldatadbname _log.ldf’可能有误!

 

后来到baidu里找到相关的方法,不错,问题解决了。

 

按下面的步骤处理:

 

1.新建一个同名的数据库2.再停掉sqlserver服务(注意不要分离数据库)

 

3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sqlserver服务

 

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了。这时,数据库本身一般还有问题,解决办法是:利用数据库的脚本创建一个新的数据库,然后通过DTS将数据导进去就行了

 

 

use master

go

sp_configure ’allow updates’,1 reconfigure with override

go

update sysdatabases set status =32768 where name=’置疑的数据库名’

go

sp_dboption ’置疑的数据库名’, ’single user’, ’true’

go

dbcc checkdb(’置疑的数据库名’)

go

update sysdatabases set status =28 where name=’置疑的数据库名’

go

sp_configure ’allow updates’, 0 reconfigure with override

go

sp_dboption ’置疑的数据库名’, ’single user’, ’false’

go

好了,问题就说这么多了。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有