天天看點

無法打開使用者預設資料庫的解決方法

無法打開使用者預設資料庫,登入失敗,這也是SQL Server使用者熟悉的問題之一。在使用企業管理器、查詢分析器、各類工具和應用軟體的時候,隻要關系到連接配接SQL Server資料庫的時候,都有可能會碰到此問題,引起此錯誤發生的原因比較多,下面我們就來詳細分析引起此問題的原因以及解決辦法。

一、原因

登入帳戶的預設資料庫被删除。

二、解決方法:

(一)、使用管理者帳戶修改此帳戶的預設資料庫

(二)、若沒有其他管理者登入帳戶,無法在企業管理器裡修改,使用issql指令行工具

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 -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 登入通路的現有資料庫的名稱的占位符。 若您的SQLLogin 使用者名有'-'字元,可能提示有文法錯誤(本人在操作中遇到的這個錯誤),這時可以改存儲過程,如下所示:

    exec sp_defaultdb 'LoginName','DBName'

◆4. 在 sqlcmd 提示符處,鍵入 GO,然後按 Enter。