错误602:未能在sysindexes中找到数据库ID7中对象ID1的索引ID1对应的行
今天服务器搬家,数据在之前不情愿的换成sql2005,现在要把几套系统换到装有sql2000的机子上,心想再装个sql2005就可以,文件都搬好,再下载了2005,再装上服务器了,安装很顺利。
但当我想附加数据库的时候,出现大约如下错误提示,全部mdf都是提示这样:
未能在 sysindexes 中找到数据库 ID 11 中对象 ID 1 的索引 ID 1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE。
Could not find row in sysindexes for database ID 11, object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes.
未能打开新数据库 'xxx'。CREATE DATABASE 将终止。 (.Net SqlClient Data Provider)
那就上网搜,搜到一些资料:
a DBCC CHECKTABLE
修复一下
b 问题解决了,把 sql server 2000 删除,重装sql server 2005 顺利附加。
欢迎访问作品研究网!原文出自:http://cn.zpyj.com/artical/programming/error602/
c SQL 2005的数据库文件附加到SQL2000就出这种错.建议重建个2005的SQL实例进行附加
第一个不会,第二个我按着做,后来实例名也用了另一个,后来就成功了,我个人的分析如下。
这错误应该是我第一次安装 sql2005的时候没有注意,让实例跟sql2000的搞在一起了,所以不能附加,因为这实例应该是sql2000所以,这样附加可能意思就是指 把 sql2005 的 mdf 附加到 sql2000,所以出错信息就跟 sql2000导入 sql2005的文件一样,错误602。
后面还有小插曲,实例名改过,原来的程序连接数据库时提示:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。
也上网查,查到有一同病相怜的人也有相同,他则是在自己改过 实例名后出现同样情况,原来是我忘记自己改过实例名,在程序方面没有把连接字符串server中指身的值改回来,改了,一切OK。
- 大小: 118.5 KB
分享到:
相关推荐
未能在 sysindexes 中找到数据库 ID 12 中对象 ID 1 的索引 ID 1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE。 这是我自己在设计时遇到的问题,经过自己从很多网站里面看到的知识,总结出来的解决问题!!分享...
sql2000附加数据库错误602的完整解决方式
是因为附加的的数据库是Sql2005格式,而使用的是Sql2000附加造成的
未能在 sysindexes 中找到数据库 ID 12 中对象 ID 1 的索引 ID 1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE 屏幕出现错误提示:command line option syntax error,type command for help 自己总结的:不要再...
SELECT 索引名称=a.name ,表名=c.name ,索引字段名=d.name ,索引字段位置=d.colid FROM sysindexes a JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid JOIN sysobjects c ON b.id=c.id JOIN ...
操作是数据库中定义的"原子行为",每个操作都在日志文件中保存为一条记录。它可以是用户直接输入的SQL语句,比如标准的insert命令,日志文件中便会记录一条操作代码来标志这个insert操作。 事物(Transaction) ...
where id = object_id('员工基本信息') and name = '属于_FK' and indid > 0 and indid ) drop index 员工基本信息.属于_FK go if exists (select 1 from sysindexes where id = object_id('担任') and name...
主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND ...
呵呵 下面提供如何借用sysindexes和sysobjects表来得到某个数据库每个表记录数的方法: 先给出SQL Server 2000版本的: 代码如下: SELECT o.NAME, i.rowcnt FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id ...
解决无法连接远程SQL Server数据库的问题
了解基本的数据存储结构知识,掌握了对数据库的基本存储操作。熟悉sysobjects、Sysindexes、CREATE PROCEDURE创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。
--标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end, 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE ...
控制 master 数据库中的对象创建 .......... 22 备份 master 数据库并保留系统表的副本 .......... 22 model 数据库 .......... 23 sybsystemprocs 数据库 .......... 24 tempdb 数据库 .......... 24 创建临时表 .....
C++算法 索引 use school go if exists (select name from sysindexes where name='IX_sid') drop index choices.IX_sid if exists (select name from sysindexes where name='IX_tid') drop index choices.IX_tid ...
表占用磁盘空间查询 create table #b([name] nvarchar(100)); insert into #b SELECT distinct a.name FROM sysobjects a INNER JOIN sysindexes b ON a.id = b.id WHERE (a.xtype = 'u')
如果需要统计数据库每个表各自的行数(DBA可能有这种需求),用count()函数就必须为每个表生成一个动态SQL语句并执行,才能得到结果。以前在互联网上看到有一种很好的解决方法,忘记出处了,写下来分享一下。 该方法...
或者,假设您的表具有索引,则可以执行以下“旧式”操作:从id = Object_ID('{tablename}')的sysindexes中选择MAX(rows)
1 THEN d.name ELSE ” END, 表说明=CASE WHEN a.colorder = 1 THEN isnull(f.value, ”) ELSE ” END , 字段序号=a.colorder , 字段名=a.name , 标识=CASE WHEN COLUMNPROPERTY(a.id, a.name, ‘IsIdentity’) = 1 ...