導讀:無法開啟使用者預設資料庫,登入失敗,這也是SQL Server使用者熟悉的問題之一。在使用企業管理器、查詢分析器、各類工具和應用軟體的時候,只要關係到串連SQL Server資料庫的時候,都有可能會碰到此問題,引起此錯誤發生的原因比較多,下面我們就來詳細分析引起此問題的原因以及解決辦法。
一、原因
登入帳戶的預設資料庫被刪除。
二、解決方案:
(一)、使用系統管理員帳戶修改此帳戶的預設資料庫
1、開啟企業管理器,展開伺服器組,然後展開伺服器
2. 展開"安全性",展開登入,右擊相應的登入帳戶,從彈出的菜單中選擇,屬性
3、重新選擇此登入帳戶的預設資料庫
(二)、若沒有其他管理員登入帳戶,無法在企業管理器裡修改,使用isql命令列工具
isql /U"sa" /P"sa的密碼" /d"master" /Q"exec sp_defaultdb N'sa', N'master'"
如果使用Windows驗證方式,使用如下命令列,將預設資料庫改成非丟失的資料庫:
isql /E /d"master" /Q"exec sp_defaultdb N'BUILTIN\Administrators', N'master'"
2)由於改變了系統密碼導致SQLSErver無法啟動
解決辦法是:
點擊運行,鍵入services.msc,開啟服務程式,找到SQLSERVER項目,選擇屬性項之二-‘登入’,把登入密碼改為作業系統Administrator帳戶登入密碼,重新啟動SQLSErver,即可正常啟動。
SQL Server 2005
在 SQL Server 2005 中,可以使用 sqlcmd 公用程式更改預設資料庫。為此,請按照下列步驟操作:
1. 單擊“開始”,單擊“運行”,鍵入 cmd,然後按 Enter。
2. 根據 SQL Server 登入使用的身分識別驗證種類,請使用以下方法之一:? 如果 SQL Server 登入使用 Microsoft Windows 身分識別驗證串連到該執行個體,請在命令提示字元處鍵入以下內容,然後按 Enter:
sqlcmd –E -S InstanceName –d master
? 如果 SQL Server 登入使用 SQL Server 身分識別驗證串連到該執行個體,請在命令提示字元處鍵入以下內容,然後按 Enter:
sqlcmd -S InstanceName -d master -U SQLLogin -P Password
注意:InstanceName 是要串連到的 SQL Server 2005 執行個體的名稱的預留位置。SQLLogin 是已刪除其預設資料庫的 SQL Server 登入的預留位置。Password 是 SQL Server 登入密碼的預留位置。
3. 在 sqlcmd 提示符處,鍵入以下內容,然後按 Enter:
Alter LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName
注意:AvailDBName 是可由執行個體中 SQL Server 登入訪問的現有資料庫的名稱的預留位置。
4. 在 sqlcmd 提示符處,鍵入 GO,然後按 Enter。
上文中為大家總結出來了這些解決預設資料庫打不開的問題,如果大家有更好的辦法,歡迎拿出來與大家一起分享。