在本文中,我们将详细介绍SQLServer2005附加数据库无法为此检索数据的各个方面,并为您提供关于sql附加数据库无法为该请求检索数据的相关解答,同时,我们也将为您带来关于mssqlserver2
在本文中,我们将详细介绍SQLServer 2005 附加数据库 无法为此检索数据的各个方面,并为您提供关于sql附加数据库无法为该请求检索数据的相关解答,同时,我们也将为您带来关于mssqlserver 2008 r2 附加数据库对于服务器失败 处理数据库日志文件时出错、SQL SERVER 2000 数据恢复(分离数据库 + 附加数据库)、SQL SERVER 2005 附加数据库为‘只读’的解决方法、SQL Server 2005无日志文件附加数据库的有用知识。
本文目录一览:- SQLServer 2005 附加数据库 无法为此检索数据(sql附加数据库无法为该请求检索数据)
- mssqlserver 2008 r2 附加数据库对于服务器失败 处理数据库日志文件时出错
- SQL SERVER 2000 数据恢复(分离数据库 + 附加数据库)
- SQL SERVER 2005 附加数据库为‘只读’的解决方法
- SQL Server 2005无日志文件附加数据库
SQLServer 2005 附加数据库 无法为此检索数据(sql附加数据库无法为该请求检索数据)
将登录改为windows登录验证....然后进行附加...成功!!!!!
mssqlserver 2008 r2 附加数据库对于服务器失败 处理数据库日志文件时出错
问题:使用mssqlserver 2008 r2 附加数据库对于服务器失败 处理数据库日志文件时出错。
解决方案:方法一、先把原库文件备份一份,然后 在其它机器上直接附加数据库,不要日志文件! 方法二、 1.设置数据库为紧急模式 Use Master GO sp_configure 'allow updates',1 reconfigure with override GO UPDATE sysdatabases SET status = 32768 where name = 'DB_SUSPECT' GO 2.停掉sql Server服务: NET STOP MSsqlSERVER 3.把原始数据库的数据文件dbnAME_DAT.MDF,dbnAME_LOG.LDF移走: 4.启动sql Server服务: NET START MSsqlSERVER 5.重新建立一个同名的数据库DB_SUSPECT; USE master GO CREATE DATABASE DB_SUSPECT ON ( NAME = dbnAME_DAT,FILENAME = 'C:',SIZE = 10,FILEGROWTH = 5 ) LOG ON ( NAME = 'dbnAME_LOG',FILENAME = 'g:',SIZE = 5MB,FILEGROWTH = 5MB ) GO 6.设置数据库运行在单用户的模式: USE MASTER GO ALTER DATABASE DB_SUSPECT SET SINGLE_USER GO 7.停掉sql服务: NET STOP MSsqlSERVER 8.把原来的数据文件再覆盖回来: 9.启动sql Server服务: NET START MSsqlSERVER 10.重新设置sqlSERVER的状态: USE MASTER GO EXEC sp_resetstatus "DB_SUSPECT" 11.数据库完整性检测: DBCC CHECKDB('DB_SUSPECT') 12.恢复数据库为多用户模式: USE MASTER GO ALTER DATABASE DB_SUSPECT SET MULTI_USER GO 13.恢复sqlSERVER原始的配置: USE MATER GO UPDATE sysdatabases SET status = 4194320 where name = 'DB_SUSPECT' GO 14.配置sqlSERVER不允许更新系统表: USE MASTER GO sp_configure 'allow updates',0 reconfigure with override GO 15.重新启动MSsqlSERVER服务: 最好重新启动操作系统 16.备份数据库: 可以通过sqlSERVER企业管理器或T-sql.需要备份MASTER和DB_SUSPECT
解决方案:
先把原库文件备份一份,然后 在其它机器上直接附加数据库,不要日志文件!试试!如果不行再按以下方法试试! 在其他机器上,用这个试试: 1.设置数据库为紧急模式 Use Master GO sp_configure 'allow updates',0 reconfigure with override GO 15.重新启动MSsqlSERVER服务: 最好重新启动操作系统 16.备份数据库: 可以通过sqlSERVER企业管理器或T-sql.需要备份MASTER和DB_SUSPECT
SQL SERVER 2000 数据恢复(分离数据库 + 附加数据库)

一、分离数据库
SQL Server 2000 允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。分离数据库将从 SQL Server 删除数据库,所以当点击 “分离数据库” 后所要分离的数据库不见了,但是保持在组成该数据库的数据和事务日志文件中的数据库完好无损(这两个文件一般位于 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下)。
分离操作步骤:
1、点击 “程序 --Microsoft SQL Server-- 企业管理 -- 打开企业管理器
2、展开服务器组,然后展开服务器,选中要分离的数据库
3、点击鼠标右键 “所有任务 --- 分离数据库”,出现如下窗口
4、点击确定,该选定的数据库就被分离。
应注意,只有 “使用本数据库的连接” 数为 0 时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
二、附加数据库
然后这些数据和事务日志文件可以用来将数据库附加到任何 SQL Server 实例上,这使数据库的使用状态与它分离时的状态完全相同。数据库分离和附加其实很简单,您即使是初次接触数据库,做起来也很容易。
附加数据库:
1、复制移动数据库文件在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件) 这两个文件复制到目标服务器上,或是同一服务器的不同文件目录下。这两个文件一般位于 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。
2、点击 “程序 --Microsoft SQL Server-- 企业管理 -- 打开企业管理器
3、展开服务器组,然后展开服务器
4、右击 "数据库",然后选择 “所有任务》附加数据库”,弹出窗口
5、输入要附加的数据库的 MDF 名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击 "验证"。在 "附加为" 框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者
6、单击 "确定" 按钮。新附加的数据库的数据库节点即创建在 "数据库" 文件夹中。
SQL SERVER 2005 附加数据库为‘只读’的解决方法
附加上数据库之后,操作过程中遇到错误提示:数据库为只读。导致客户端软件登陆不了数据库的情况发生。
下面提供几种解决方案,供大家分享
一:打开SQL Server 数据库配置工具,选择Sql Server 2005 服务,查看SQL Server (SQLEXPRESS)右键点击选择属性。
将登陆身份选为内置账户:本地系统(local system)
在内置账户选项卡处,把网络服务 改为 本地系统后 重新启动服务,重新分离附加数据库。
备注:之所以附加上的数据库为只读,是因为启动SQL Server 的默认启动账号“网络服务”对所附加的数据库文件的权限不够造成的。
二:当我们有时候在附加 SQL SERVER数据库的时候,会出现附加失败,或者附加成功,但是数据为只读的,
也会导致在安装和部署项目中的自动附加数据库操作失败。
解决此问题的几个关键点如下:
1 文件系统是NTFS系统。
2 由NTFS 文件系统的访问权限导致。
解决方案如下:
1 控制面板---文件夹选项----查看 关闭“使用简单文件共享(推荐)”
2 选择存放数据库文件的文件夹,右键选择“属性”---“安全”选项卡,选择最后一个
users 将该用户的权限设置为“完全控制”。
经过这两部操作后,数据库附加失败或附加之后只读的问题即可解决。
解决方案三:用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"forceguest"=dword:00000000
批处理: reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_WORD /d 0x00000000 /f
如果选中此项,则将上述 0x00000000改为 0x00000001。
通过修改注册表的方式实现代码如下:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;
Microsoft.Win32.RegistryKey software = key.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Lsa", true);
software.SetValue("forceguest", 0);
2、C#修改指定文件夹的用户访问权限代码实现如下:(将该用户的权限设置为可写)
string path = this.Context.Parameters["targetdir"];//得到文件夹路径
DirectoryInfo dInfo = new DirectoryInfo(path);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(Environment.UserName, FileSystemRights.CreateFiles, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
补充:对于SQL 2008 数据库附加失败,或者附加之后发现该附加的数据库为只读属性,可以采用 将该数据库放在SQL 2008默认的数据库data目录里边,可解决问题。
SQL Server 2005无日志文件附加数据库
解决办法:
1、新建一个同名数据库。
2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)
3、启动数据库服务,数据库变为置疑或可疑状态。然后在查询分析器中运行:
alter database 无日志文件的数据库名称 set emergency
设置为紧急状态。
4、再运行:
alter database 无日志文件的数据库名称 set single_user
或者:
Sp_dboption ''无日志文件的数据库名称'', ''single user'', ''true''
设置为单用户模式。
5、检查并重建日志文件,运行:
dbcc checkdb(''无日志文件的数据库名称'',REPAIR_ALLOW_DATA_LOSS)
这个时间比较长。耐心等待!如果有错误提示,再运行:
dbcc checkdb(''无日志文件的数据库名称'',REPAIR_REBUILD)
进行修复。如果没有错误,可以跳过。
6、恢复成多用户模式
alter database 无日志文件的数据库名称 set multi_user
或者:
Sp_dboption ''无日志文件的数据库名称'', ''single user'', ''false''
刷新数据库,你就可以看到已经修复好的数据库了。
今天的关于SQLServer 2005 附加数据库 无法为此检索数据和sql附加数据库无法为该请求检索数据的分享已经结束,谢谢您的关注,如果想了解更多关于mssqlserver 2008 r2 附加数据库对于服务器失败 处理数据库日志文件时出错、SQL SERVER 2000 数据恢复(分离数据库 + 附加数据库)、SQL SERVER 2005 附加数据库为‘只读’的解决方法、SQL Server 2005无日志文件附加数据库的相关知识,请在本站进行查询。
本文标签: