SQL数据附加失败错误3456求救

SQL数据附加失败错误3456求救,第1张

方法一:

1.新建一个同名的数据库(数据文件与原来的要一致)

2.再停掉sql server(注意不要分离数据库)

3.用原数据库的数据文件覆盖掉这个新建的数据库

4.再重启sql server

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用

数据库的脚本创建一个新的数据库,并将数据导进去就行了.

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

执行以上语句后出现下面的错误提示:

已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装。

(所影响的行数为 1 行)

服务器: 消息 5105,级别 16,状态 4,行 1

设备激活错误。物理文件名 'e:\Program Files\Microsoft SQL Server\MSSQL\data\bserp_Data.MDF' 可能有误。

sp_dboption 命令失败。

服务器: 消息 8966,级别 16,状态 1,行 1

未能读取并闩锁页 (97:6553715)(用闩锁类型 SH)。sysobjects 失败。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

(所影响的行数为 1 行)

已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装。

方法二:

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

原因:

这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录没有正确的 权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。

这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件

也可能建立在别的目录,例如 /Winnt.

使用NT的文件监视程序监视文件失败时到底是访问了什么目录。

这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,

这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。

还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

2.错误信息:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'file

already in use.

原因:

多人使用时数据库被锁定。

3.错误信息:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default

driver specified.

原因:

最可能的原因是ConnectString是一个在global.asa中初始化的Session变量,但是global.asa

却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)

还有一个原因就是你在你的ConnectString中加入了多余的空格,例如

DSN = MyDSNDatabase = Pubs

试试改成下面这个样子:

DSN=MyDSNDatabase=Pubs

如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6624111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存