mssql server 數(shù)據(jù)庫(kù)附加不上解決辦法分享

錯(cuò)誤15105,從網(wǎng)上找了一些解決方案,一般都是說(shuō)文件的權(quán)限不足的問(wèn)題,
當(dāng)然附加的時(shí)候必須是有數(shù)據(jù)庫(kù)附加權(quán)限才可以操作的。
解決辦法1:給相應(yīng)的MDF文件給Full Control的權(quán)限,如果不知道是什么用戶可以去Sql Server的配置中心去找
但是我遇到這個(gè)用上述方法就不可以。
解決方法2:換個(gè)用戶試試,我原數(shù)據(jù)庫(kù)是用sa登陸的,我試著用sa登陸一下,附加成功了!~
如果反復(fù)的用sa登陸卻登陸失敗,可能是沒(méi)有開(kāi)權(quán)限。
權(quán)限可以在登陸用戶的選項(xiàng)中設(shè)置,允許登陸即可。
驗(yàn)證模式則可以在服務(wù)器處設(shè)置,要選擇混合登陸模式。

另外對(duì)高版本數(shù)據(jù)附加低版本數(shù)據(jù)庫(kù)也可以試試上面的方法。
其實(shí)我個(gè)人更喜歡用生成腳本的方式導(dǎo)結(jié)構(gòu)和數(shù)據(jù)。

在QA里執(zhí)行sp_attach_db或者sp_attach_single_file_db,出現(xiàn)提示:錯(cuò)誤1813:未能打開(kāi)新數(shù)據(jù)庫(kù)'dbname',create database 將終止。設(shè)備激活錯(cuò)誤。物理文件名'd:\sql server\mssql\data\dbname _log.ldf'可能有誤!
按下面的步驟處理:
1.新建一個(gè)同名的數(shù)據(jù)庫(kù)
2.再停掉sqlserver服務(wù)(注意不要分離數(shù)據(jù)庫(kù))
3.用原數(shù)據(jù)庫(kù)的數(shù)據(jù)文件覆蓋掉這個(gè)新建的數(shù)據(jù)庫(kù)
4.再重啟sqlserver服務(wù)
5.此時(shí)打開(kāi)企業(yè)管理器時(shí)會(huì)出現(xiàn)置疑,先不管,執(zhí)行下面的語(yǔ)句(注意修改其中的數(shù)據(jù)庫(kù)名)
6.完成后一般就可以訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。這時(shí),數(shù)據(jù)庫(kù)本身一般還有問(wèn)題,解決辦法是:利用數(shù)據(jù)庫(kù)的腳本創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),然后通過(guò)DTS將數(shù)據(jù)導(dǎo)進(jìn)去就行了
use master go sp_configure 'allow updates',1 reconfigure with override go update sysdatabases set status =32768 where name='置疑的數(shù)據(jù)庫(kù)名' go sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'true' go dbcc checkdb('置疑的數(shù)據(jù)庫(kù)名') go update sysdatabases set status =28 where name='置疑的數(shù)據(jù)庫(kù)名' go sp_configure 'allow updates', 0 reconfigure with override go sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'false' go
Sql Server 2000附加數(shù)據(jù)庫(kù)出現(xiàn)1813錯(cuò)誤的解決方法
今天進(jìn)行了一錯(cuò)誤操作。
數(shù)據(jù)庫(kù)xxzx_discuz,因生成大量日志使日志文件'xxzx_discuz_Log.LDF' 占滿了磁盤(pán)所有空間,使網(wǎng)站無(wú)法正常使用數(shù)據(jù)庫(kù)。
自己圖省事分離數(shù)據(jù)庫(kù)xxzx_discuz后,直接刪除'xxzx_discuz_Log.LDF' (因?yàn)槲募?,無(wú)法存放到回收站),重新附件到SQL Server時(shí)出現(xiàn)兩個(gè)提示:
------------------------------------------------------------------------------------------------------------------------------
SQL Server 企業(yè)管理器
---------------------------
為日志文件指定的文件名不正確。
將創(chuàng)建新的日志文件。
要繼續(xù)嗎?
---------------------------
是(Y) 否(N)
------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL-DMO (ODBC SQLState: 42000)
---------------------------
錯(cuò)誤 1813: 未能打開(kāi)新數(shù)據(jù)庫(kù) 'xxzx_discuz'。CREATE DATABASE 將終止。
設(shè)備激活錯(cuò)誤。物理文件名 'S:\Program Files\Microsoft SQL Server\MSSQL\data\xxzx_discuz_Log.LDF' 可能有誤。
---------------------------
確定
------------------------------------------------------------------------------------------------------------------------------
從而無(wú)法將數(shù)據(jù)庫(kù)正常附加到SQL Server 2000,正常情況下這樣操作是沒(méi)有問(wèn)題的,SQL Server會(huì)重新生成日志文件,但是因?yàn)橹俺霈F(xiàn)了磁盤(pán)空間不足,日志文件不完整,從而造成了無(wú)法正常附加。
解決辦法如下(從網(wǎng)上找來(lái)的):
0.備份數(shù)據(jù)文件'xxzx_discuz_Log.MDF'
1.新建一個(gè)同名的數(shù)據(jù)庫(kù)'xxzx_discuz'
2.再停掉sqlserver服務(wù)(注意不要分離數(shù)據(jù)庫(kù))
3.用原數(shù)據(jù)庫(kù)的數(shù)據(jù)文件'xxzx_discuz_Log.MDF' 覆蓋掉新建的數(shù)據(jù)庫(kù)
4.再重啟sqlserver服務(wù)
5.此時(shí)打開(kāi)企業(yè)管理器時(shí)會(huì)出現(xiàn)置疑,先不管,執(zhí)行下面的語(yǔ)句(注意修改其中的數(shù)據(jù)庫(kù)名) 6.完成后一般就可以訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)了。這時(shí),數(shù)據(jù)庫(kù)本身一般還有問(wèn)題,解決辦法是:利用數(shù)據(jù)庫(kù)的腳本創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),然后通過(guò)DTS將數(shù)據(jù)導(dǎo)進(jìn)去就行了. SQL代碼
use master
go
sp_configure 'allow updates',1 reconfigure with override
go
update sysdatabases set status =32768 where name='置疑的數(shù)據(jù)庫(kù)名'
go
sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'true'
go
dbcc checkdb('置疑的數(shù)據(jù)庫(kù)名')
go
update sysdatabases set status =28 where name='置疑的數(shù)據(jù)庫(kù)名'
go
sp_configure 'allow updates', 0 reconfigure with override
go
sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'false'
go
特別注意最后一步中的說(shuō)明“這時(shí),數(shù)據(jù)庫(kù)本身一般還有問(wèn)題,解決辦法是:利用數(shù)據(jù)庫(kù)的腳本創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),然后通過(guò)DTS將數(shù)據(jù)導(dǎo)進(jìn)去就行了” 參考文章:Sql Server附加數(shù)據(jù)庫(kù)出現(xiàn)1813錯(cuò)誤的解決方法
- sql server2005實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離介紹
- SQL Server 2005附加數(shù)據(jù)庫(kù)時(shí)Read-Only錯(cuò)誤的解決方案
- sql server2012附加數(shù)據(jù)庫(kù)問(wèn)題解決方法
- Sqlserver 2005附加數(shù)據(jù)庫(kù)時(shí)出錯(cuò)提示操作系統(tǒng)錯(cuò)誤5(拒絕訪問(wèn))錯(cuò)誤5120的解決辦法
- sqlserver附加.mdf權(quán)限問(wèn)題解決
- MSSQL2005在networkservice權(quán)限運(yùn)行附加數(shù)據(jù)庫(kù)報(bào)(Microsoft SQL Server,錯(cuò)誤: 5120)
- SQL SERVER 2008 無(wú)法附加數(shù)據(jù)庫(kù)的解決方法
- SQLServer 附加數(shù)據(jù)庫(kù)后出現(xiàn)只讀或失敗的解決方法
- mssql server .ldf和.mdf的文件附加數(shù)據(jù)庫(kù)的sql語(yǔ)句
- SQL Server 數(shù)據(jù)庫(kù)分離與附加 就這么簡(jiǎn)單!
相關(guān)文章
insert into tbl() select * from tb2中加入多個(gè)條件
insert into tbl() select * from tb2中加入多個(gè)條件2009-06-06
詳解SQL Server數(shù)據(jù)庫(kù)狀態(tài)和文件狀態(tài)
本文通過(guò)實(shí)例給大家詳解sqlserver數(shù)據(jù)庫(kù)狀態(tài) (database states) 和文件狀態(tài) (database states),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-09-09
用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫(kù)觸發(fā)器范例語(yǔ)句
創(chuàng)建SqlServer數(shù)據(jù)庫(kù)觸發(fā)器腳本范例,方便大家用sql來(lái)創(chuàng)建觸發(fā)器,學(xué)習(xí)sqlserver的朋友可以參考下。2010-09-09
SQL Server存儲(chǔ)過(guò)程生成insert語(yǔ)句實(shí)例
這篇文章主要介紹了SQL Server使用存儲(chǔ)過(guò)程生成insert語(yǔ)句再執(zhí)行大量插入數(shù)據(jù)的方法2013-11-11
Navicat 連接SQLServer數(shù)據(jù)庫(kù)(圖文步驟)
這篇文章主要介紹了Navicat 連接SQLServer數(shù)據(jù)庫(kù)(圖文步驟),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
SQLServer2005 按照日期自動(dòng)備份的方法
SQLServer2005如何備份,按照日期自動(dòng)備份2010-07-07
SqlServer數(shù)據(jù)庫(kù)遠(yuǎn)程連接案例教程
這篇文章主要介紹了SqlServer數(shù)據(jù)庫(kù)遠(yuǎn)程連接案例教程,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
ASP.NET和MSSQL高性能分頁(yè)實(shí)例代碼
這篇文章主要介紹了ASP.NET和MSSQL高性能分頁(yè)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-01-01

