今天在使用sqlserver2000附加数据库时报错,原来的Mdf文件是Sql2005下的,现在要转到Sql2000下,有什么好的办法吗?报的错误情况:错误602:未能在sysindexes中找到数据库ID14中对象ID1的索引ID1对应的行...,就在别人的机子上(有2005版的)按照以下的方法解决了这个问题,当然你可以直接再安装2005。现分享如下:
一般遇到这种情况首先核所使用的开发环境(如 VS2005+Sql2005),如果你采用的是sqlServer2005的话,如果你用Sql2000附加Sql2005的数据库就会出现这种错误(解决方法:改用SqlServer2005附加一下,如果还想用Sql2000格式那就用导出sql语句等方式进行转换)
直接restore或附加应该是不行的, 用脚本+导数据肯定没有问题。
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新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
分享到:
相关推荐
未能在 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 ...
未能在 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 Server数据库的问题
--sql server 2000 SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号 = a.colorder, 字段名 = a.name, 标识...
他可以支持SQLServer7.0和SQLServer2000,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l 计划和授权变更...
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...
呵呵 下面提供如何借用sysindexes和sysobjects表来得到某个数据库每个表记录数的方法: 先给出SQL Server 2000版本的: 代码如下: SELECT o.NAME, i.rowcnt FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id ...
如果需要统计数据库每个表各自的行数(DBA可能有这种需求),用count()函数就必须为每个表生成一个动态SQL语句并执行,才能得到结果。以前在互联网上看到有一种很好的解决方法,忘记出处了,写下来分享一下。 该方法...
了解基本的数据存储结构知识,掌握了对数据库的基本存储操作。熟悉sysobjects、Sysindexes、CREATE PROCEDURE创建存储过程,存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。
代码如下: — SQL Server 2000 SELECT a.name AS 字段名, 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 ...
--标识=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 ...
但是A会锁定tempdb的SYSOBJECTS、SYSINDEXES、SYSCOLUMNS表,在多用户并发的时候,容易产生阻塞其他的进程。 2. 在并发系统中是用B. 大数量的单个语句中,使用A. 创建临时表的方法: 方法一: create table #...
In a nonclustered index, the leaf level contains each index key, plus a bookmark that tells SQL Server where to find the data row corresponding to the key in the index. A bookmark can take one of two ...
控制 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 ...