一台旧电脑,使用的是NT SERVER 4.0+SQL SERVER 7.0,一台新电脑,装的是WIN2000 SERVER+SQL SERVER 2000,现在要把旧电脑上数据库的数据导到新电脑上去。
先在SQL 7.0中使用完全备份,然后将备份文件拷贝到新电脑上,最后使用SQL 2000的从设备强制还原,将数据库重建了起来。
现在的状况:
在企业管理器中选择表,再打开任意表,SQL SERVER都会提示“灾难性故障”,表打不开;也有提示“没有注册类别”,但极少。
提示后点击“帮助”按钮,提示“ODBC错误(OS),生成了ODBC错误,可能删除了与某个外键值相关的记录或者违反了check约束。”
在查询分析器里使用SQL语句查询或者在对象浏览器中打开表,都是好的。
请问这是怎么回事,能否解决?
现在运行程序感觉速度很慢,而且似乎有些INSERT操作也不成功。
8 个解决方案
#1
没有碰到过类似情况
尝试一下安装SQL Server SP3
SQL Server 2000 Service Pack 3a
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe
尝试一下安装SQL Server SP3
SQL Server 2000 Service Pack 3a
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe
#2
其他数据库打开是否正常?
如果不正常,估计是你的SQL系统文件被破坏之类,建议重新安装SQL
如果是正常的,那问题应该是你的数据库有问题,再纷纭检查
打开其他表是否正常?
如果不正常,说明问题出在你的数据库上,用下面的语句检查一下,看看有没有错误的结果:
dbcc checkdb('你的库名')
如果正常,说明问题出在你的表上,用下面的语句检查一下表,看看错误信息是什么?
dbcc checktable('表名')
如果不正常,估计是你的SQL系统文件被破坏之类,建议重新安装SQL
如果是正常的,那问题应该是你的数据库有问题,再纷纭检查
打开其他表是否正常?
如果不正常,说明问题出在你的数据库上,用下面的语句检查一下,看看有没有错误的结果:
dbcc checkdb('你的库名')
如果正常,说明问题出在你的表上,用下面的语句检查一下表,看看错误信息是什么?
dbcc checktable('表名')
#3
--你也可以直接用下面的语句,检查/修复数据库/并整理索引碎片(需要比较长的时间,请在系统空闲时进行此工作)
USE MASTER
GO
sp_dboption '你的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('你的数据库名', REPAIR_ALLOW_DATA_LOSS)
Go
USE 你的数据库名
go
exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
go
sp_dboption '你的数据库名', 'single user', 'false'
Go
USE MASTER
GO
sp_dboption '你的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('你的数据库名', REPAIR_ALLOW_DATA_LOSS)
Go
USE 你的数据库名
go
exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
go
sp_dboption '你的数据库名', 'single user', 'false'
Go
#4
没见过这样的事。我也想知道原因
#5
碰到过,应该是master数据库有问题
本身数据库可能也有问题,dbcc checkdb一下
本身数据库可能也有问题,dbcc checkdb一下
#6
另外找了一个版本的SQL SERVER 2000,还是不行。:(
#7
做过我说的测试了吗? 结果怎么样?
#8
没做过,人家懒得再弄了,我也没办法,唉。
现在不影响到程序的运行,人家也不肯弄了。
现在不影响到程序的运行,人家也不肯弄了。
#1
没有碰到过类似情况
尝试一下安装SQL Server SP3
SQL Server 2000 Service Pack 3a
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe
尝试一下安装SQL Server SP3
SQL Server 2000 Service Pack 3a
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe
#2
其他数据库打开是否正常?
如果不正常,估计是你的SQL系统文件被破坏之类,建议重新安装SQL
如果是正常的,那问题应该是你的数据库有问题,再纷纭检查
打开其他表是否正常?
如果不正常,说明问题出在你的数据库上,用下面的语句检查一下,看看有没有错误的结果:
dbcc checkdb('你的库名')
如果正常,说明问题出在你的表上,用下面的语句检查一下表,看看错误信息是什么?
dbcc checktable('表名')
如果不正常,估计是你的SQL系统文件被破坏之类,建议重新安装SQL
如果是正常的,那问题应该是你的数据库有问题,再纷纭检查
打开其他表是否正常?
如果不正常,说明问题出在你的数据库上,用下面的语句检查一下,看看有没有错误的结果:
dbcc checkdb('你的库名')
如果正常,说明问题出在你的表上,用下面的语句检查一下表,看看错误信息是什么?
dbcc checktable('表名')
#3
--你也可以直接用下面的语句,检查/修复数据库/并整理索引碎片(需要比较长的时间,请在系统空闲时进行此工作)
USE MASTER
GO
sp_dboption '你的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('你的数据库名', REPAIR_ALLOW_DATA_LOSS)
Go
USE 你的数据库名
go
exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
go
sp_dboption '你的数据库名', 'single user', 'false'
Go
USE MASTER
GO
sp_dboption '你的数据库名', 'single user', 'true'
Go
DBCC CHECKDB('你的数据库名', REPAIR_ALLOW_DATA_LOSS)
Go
USE 你的数据库名
go
exec sp_msforeachtable 'DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)'
exec sp_msforeachtable 'DBCC DBREINDEX(''?'')'
go
sp_dboption '你的数据库名', 'single user', 'false'
Go
#4
没见过这样的事。我也想知道原因
#5
碰到过,应该是master数据库有问题
本身数据库可能也有问题,dbcc checkdb一下
本身数据库可能也有问题,dbcc checkdb一下
#6
另外找了一个版本的SQL SERVER 2000,还是不行。:(
#7
做过我说的测试了吗? 结果怎么样?
#8
没做过,人家懒得再弄了,我也没办法,唉。
现在不影响到程序的运行,人家也不肯弄了。
现在不影响到程序的运行,人家也不肯弄了。