遇到这种情况首先核对一下51aspx上源码所表明的开发环境(如 VS2005+Sql2005),如果是采用sqlServer2005的话你用Sql2000附加Sql2005的数据库就会出现这种错误(解决方法:改碧埋用SqlServer2005附加一下,如果还想用Sql2000格式那就用导出sql语句等方式进行转换)
转csdn 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新建的库
-- 在"选择源表和源视图"中, 选择所有的表
-- 最后完成
2. 用友U8.52创建新的帐套,提示:未能找到ID为11的数据库,可能该数据库尚未激活,也可能正在转换过程中.
这种情况一般都是程序方面的原因,
有的模板数据库坏了之类,覆盖安装是最简单的方法
3. 用友帐套引入时提示-2147217900未能找到ID为39的数据库可能该数据库尚未激活
这个问题没碰到过,是年度帐还是整个帐套啊,实在不行可以拷出数据的服务器上帐套文件夹(这个帐套所有年度的数据库),在新服务器的用友里新建这个帐套,信息同原帐套,将文件夹覆盖为拷出文件夹,然后在这台服务器上附加数据库数据库(路径为这个文件夹下各个年度)。
4. 数据库 id 5,页(1:32126)什么意思
数据库用户名就是你安装的mysql数据库的用户名,默认是root,
密码是该数据库中该用户的的密码,如果是root的话,就是root用户的密码。如果root用户没有密码则为空。数据库名就是要在数据库中为DISCUZ创建的数据库的名称。
有时,你要先创建好数据库,在在这里写上你创建的数据库名称,有时,粗灶纤你在这里写个要辩培使用的名称,安装程序会给你岩仿创建好的。
5. sql server 2000服务管理器 服务:拒绝访问。发生错误5-(拒绝
解释
当 Microsoft® SQL Server™ 无法在 sysindexes 表中找到需要的表或索引所对应的行时(例如,当执行引用已除去的表的存储过程时),发生该错误。
对策
如果该错误因为存储过程引用某个已除去的表而发生,则除去并重新创建该存储过程。该错误还可能和其它错误信息一起发生,而这些消息更好地指出问题的根本原因。在 sysindexes 上执行 DBCC CHECKTABLE;同样执行 DBCC CHECKDB。
1. DBCC CHECKDB
重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use master
declare @databasename varchar(255)
set @databasename='需要修复的数据库实体的名称'
exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--将目标数据库置为多用户状态
然后执行 DBCC CHECKDB('需要修复的数据库实体的名称') 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname='需要修复的数据库实体的名称'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修复的数据表的名称',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修复的数据表的名称',REPAIR_REBUILD)
------把’ 需要修复的数据表的名称’更改为执行DBCC CHECKDB时报错的数据表的名称
exec sp_dboption @dbname,'single user','false'
6. 数据库连接失败:未能找到ID为7的数据库。可能该数据库尚没有激活,也可能正在转换
你的数据库是原来2000版本的mdf文件在2005中附加过吧
虽然原来是2000的库,但2005附加过之后,还是会出这个问题.
如果真是这个原因,只怕还要用2005了. 或先用2005,再导出数据结构和数据到2000里.
如果没有附加过,还出这个问题.
楼主可以找一台干净的机器,在上面装装sql2000,再试试.
如果其他机器可以,说明你的库没任何问题,是你现在机器上的sql的问题.
如果其他其他上也不行.那应该是你库本身有问题.
7. 未能找到id为25的数据库,怎么办呀!
数据库版本不对.
你安装一个SQL2005再导入你的数据文件
8. SQL附加数据库时提示"错误602;未能在sysindexes中找到数据库ID7中对象ID1的索引ID1对应的行。"
1.新建一个同名的数据库(数据文件与原来的要一致)2.再停掉sqlserver(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sqlserver5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.USEMASTERGOSP_CONFIGURE'ALLOWUPDATES',=32768WHERENAME='置疑的数据库名'Gosp_dboption'置疑的数据库名','singleuser','true'GoDBCCCHECKDB('置疑的数据库名')Goupdatesysdatabasessetstatus=28wherename='置疑的数据库名'Gosp_configure'allowupdates',0reconfigurewithoverrideGosp_dboption'置疑的数据库名','singleuser','false'
9. 我在执行sql语句中的select的时候(按照id查询),每当数据库中的id<5的时候可以查询
id>5没数据吧,你获得数据库返回的数据后,应该先判断接收的对象是否为null