mssql server 数据库附加不上解决办法分享

错误15105,从网上找了一些解决方案,一般都是说文件的权限不足的问题,

当然附加的时候必须是有数据库附加权限才可以操作的。

解决办法1:给相应的MDF文件给Full Control的权限,如果不知道是什么用户可以去Sql Server的配置中心去找

但是我遇到这个用上述方法就不可以。

解决方法2:换个用户试试,我原数据库是用sa登陆的,我试着用sa登陆一下,附加成功了!~

如果反复的用sa登陆却登陆失败,可能是没有开权限。

权限可以在登陆用户的选项中设置,允许登陆即可。

验证模式则可以在服务器处设置,要选择混合登陆模式。

另外对高版本数据附加低版本数据库也可以试试上面的方法。

其实我个人更喜欢用生成脚本的方式导结构和数据。

在QA里执行sp_attach_db或者sp_attach_single_file_db,出现提示:错误1813:未能打开新数据库'dbname',create database 将终止。设备激活错误。物理文件名'd:\sql server\mssql\data\dbname _log.ldf'可能有误!
  按下面的步骤处理:
  1.新建一个同名的数据库
  2.再停掉sqlserver服务(注意不要分离数据库)
  3.用原数据库的数据文件覆盖掉这个新建的数据库
  4.再重启sqlserver服务
  5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
  6.完成后一般就可以访问数据库中的数据了。这时,数据库本身一般还有问题,解决办法是:利用数据库的脚本创建一个新的数据库,然后通过DTS将数据导进去就行了
复制代码 代码如下:
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

Sql Server 2000附加数据库出现1813错误的解决方法

今天进行了一错误操作。

数据库xxzx_discuz,因生成大量日志使日志文件'xxzx_discuz_Log.LDF' 占满了磁盘所有空间,使网站无法正常使用数据库。

自己图省事分离数据库xxzx_discuz后,直接删除'xxzx_discuz_Log.LDF' (因为文件太大,无法存放到回收站),重新附件到SQL Server时出现两个提示:
------------------------------------------------------------------------------------------------------------------------------
SQL Server 企业管理器
---------------------------
为日志文件指定的文件名不正确。
将创建新的日志文件。
要继续吗?
---------------------------
是(Y) 否(N)
------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL-DMO (ODBC SQLState: 42000)
---------------------------
错误 1813: 未能打开新数据库 'xxzx_discuz'。CREATE DATABASE 将终止。
设备激活错误。物理文件名 'S:\Program Files\Microsoft SQL Server\MSSQL\data\xxzx_discuz_Log.LDF' 可能有误。
---------------------------
确定
------------------------------------------------------------------------------------------------------------------------------

从而无法将数据库正常附加到SQL Server 2000,正常情况下这样操作是没有问题的,SQL Server会重新生成日志文件,但是因为之前出现了磁盘空间不足,日志文件不完整,从而造成了无法正常附加。

解决办法如下(从网上找来的):

0.备份数据文件'xxzx_discuz_Log.MDF'
1.新建一个同名的数据库'xxzx_discuz'
2.再停掉sqlserver服务(注意不要分离数据库)
3.用原数据库的数据文件'xxzx_discuz_Log.MDF' 覆盖掉新建的数据库

4.再重启sqlserver服务
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) 6.完成后一般就可以访问数据库中的数据了。这时,数据库本身一般还有问题,解决办法是:利用数据库的脚本创建一个新的数据库,然后通过DTS将数据导进去就行了. SQL代码
复制代码 代码如下:
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

特别注意最后一步中的说明“这时,数据库本身一般还有问题,解决办法是:利用数据库的脚本创建一个新的数据库,然后通过DTS将数据导进去就行了” 参考文章:Sql Server附加数据库出现1813错误的解决方法

时间: 2024-10-27 21:25:38

mssql server 数据库附加不上解决办法分享的相关文章

mssql server 数据库附加不上解决办法分享_MsSql

错误15105,从网上找了一些解决方案,一般都是说文件的权限不足的问题, 当然附加的时候必须是有数据库附加权限才可以操作的. 解决办法1:给相应的MDF文件给Full Control的权限,如果不知道是什么用户可以去Sql Server的配置中心去找 但是我遇到这个用上述方法就不可以. 解决方法2:换个用户试试,我原数据库是用sa登陆的,我试着用sa登陆一下,附加成功了!~ 如果反复的用sa登陆却登陆失败,可能是没有开权限. 权限可以在登陆用户的选项中设置,允许登陆即可. 验证模式则可以在服务器

mssql server 数据库附加不上解决办法

错误15105,从网上找了一些解决方案,一般都是说文件的权限不足的问题, 当然附加的时候必须是有数据库附加权限才可以操作的. 解决办法1:给相应的MDF文件给Full Control的权限,如果不知道是什么用户可以去Sql Server的配置中心去找 但是我遇到这个用上述方法就不可以. 解决方法2:换个用户试试,我原数据库是用sa登陆的,我试着用sa登陆一下,附加成功了!~ 如果反复的用sa登陆却登陆失败,可能是没有开权限. 权限可以在登陆用户的选项中设置,允许登陆即可. 验证模式则可以在服务器

DB2 ESE 9.1在Windows Server 2008下出现无法新建数据库的情况及解决办法

DB2 Enterprise Server Edition(DB2 ESE)9.1在Windows Server 2008 下出现无法新建数据库的情况及解决办法 在安装有,DB2 9.1版本的Windows Server 2008 上面,使用默认的安装方式导致无法创建数据库,相关的错误提示: "SQL3012C 发生系统错误(原因码= "").无法处理后续的SQL 语句.SQLSTATE=58005". 通过分析日志"%programfiles%\IBM\

PHP读取mssql json数据中文乱码的解决办法_php实例

PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. 解决办法如下: 这样,sql server 2008中的中文就可以在网页正常显示了. 如果要将中文正常插入到sql server 2008中,还要加入一条代码:$query = iconv("utf-8", "gbk//ignore", $query);//为了解决中文

mssql server 数据库备份还原方法

mssql server 数据库教程备份还原方法 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性).完全备份也叫完整备份. 差异备份: 差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件.(差异备份过程中,只备份有标记的那些选中的文件和文件夹.它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性). 增量备份: 增量备份是针对于上一次备份(无论是哪种备份

恢复sql server 2000误删数据的解决办法_MsSql

今天不小心把客户那边的数据库中删了一千多条数据,而且之前又没有备份,真的是很郁闷,后来在网上找到一工具,用起来挺方便,让我躲过一劫. 首先来看一下界面: 输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个工具了,直接用SQL搞定了).然后点Attach,进入下面的界面: 可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出我们误操作的那些日志记录,点Browse下的

mssql server数据库重命名方法

mssql server数据库重命名方法 create proc killspid (@dbname varchar(20))         as         begin         declare     @sql     nvarchar(500),@temp   varchar(1000)     declare     @spid     int         set     @sql='declare     getspid     cursor     for      

恢复sql server 2000误删数据的解决办法

今天不小心把客户那边的数据库中删了一千多条数据,而且之前又没有备份,真的是很郁闷,后来在网上找到一工具,用起来挺方便,让我躲过一劫. 首先来看一下界面: 输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个工具了,直接用SQL搞定了).然后点Attach,进入下面的界面: 可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出我们误操作的那些日志记录,点Browse下的

iPhone爱思助手连不上解决办法

  使用爱思助手可以有效的用电脑管理手机数据,然而有网友反映爱思助手连接超时现象,这是怎么回事?下面小编就为大家带来爱思助手连不上解决办法.   爱思助手连接不了怎么办 苹果爱思助手连不上解决办法 首先请确认: ①数据线和电脑USB接口正常的状态 ②电脑端有安装最新版本的iTunes 1.确认设备是苹果的设备,如果是假的可能将会导致USB连接不稳定,还将出现突然断开的现象. (连接电脑后在我的电脑内出现可移动磁盘的.手机提示要选择摄像头的等等均为假货或者山寨货) 2.请确认您的设备连接电脑后,手