每位使用者都有預設的資料庫。當您連線至執行 Microsoft SQL Server
的電腦,但沒有指定登入資料庫時,就會使用預設的資料庫。然而,如果預設資料庫在連線時無法使用,您可能就無法連線。相反地,您會收到錯誤訊息 4062 或錯誤訊息
4064。錯誤訊息的文字如下所示:
連線時,使用者預設資料庫無法使用。可能是因為資料庫:
- 處於質疑模式。
- 不再存在。
- 處於單一使用者模式,而且唯一可用的連線已經被其他人或其他事物佔用。
- 已卸離。
- 已設定為 RESTRICTED_USER 狀態。
- 處於離線狀態。
- 設定為緊急狀態。
- 沒有對應至使用者的登入帳戶,或者使用者已被拒絕存取。
- 屬於資料庫鏡像的一部分。
此外,登入帳戶可能是多個群組的成員,而其中一個群組的預設資料庫在連線時無法使用。
如果要解決這個問題,請在連接字串中指定一個有效且可用的資料庫。為避免在使用者的預設資料庫無法使用時發生錯誤,請使用可以修改登入的使用者身分登入。然後,將使用者的預設資料庫變更為目前可供連線的資料庫。
SQL Server 2005
您可以使用 sqlcmd 公用程式在 SQL Server 2005
中變更預設資料庫。如果要執行這項操作,請依照下列步驟執行:
- 按一下 [開始],按一下 [執行],輸入
cmd,然後按下 ENTER。
- 請根據 SQL Server 登入使用的驗證類型,使用下列其中一個方法:
注意 InstanceName 是您正在連線的 SQL Server 2005
執行個體名稱的預留位置。SQLLogin 是 SQL Server
登入已卸除之預設資料庫的預留位置。Password 是 SQL Server
登入密碼的預留位置。
- 在 sqlcmd 提示字元中,輸入下列命令,然後按下 ENTER:
ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName
注意 AvailDBName 是可由 SQL Server
登入在執行個體中存取的現有資料庫名稱的預留位置。 - 在 sqlcmd 提示字元中,輸入 GO,然後按下
ENTER。
SQL Server 2000 和 SQL Server 7.0
您可以使用 osql 公用程式在 SQL Server 2000 和 SQL Server 7.0
中變更預設資料庫。如果要執行這項操作,請依照下列步驟執行:
- 在命令提示字元中,輸入下列命令,然後按下 ENTER:
C:\>osql -E
- 在 osql 提示字元中,輸入下列命令,然後按下 ENTER:
1>sp_defaultdb 'user's_login', 'master'
- 在 second 提示字元中,輸入下列命令,然後按下 ENTER:
2>go
如果要示範這個做法,請嘗試與 OSQL 連線,並且使用
-d 選項搭配處於標準線上狀態的現有資料庫。連線將會成功,並且不會出現任何錯誤訊息。
相反地,當資料庫無法使用時,您會從各種 SQL Server 用戶端公用程式收到類似下列的回應:
- SQL Server Management Studio (SQL Server 2005)
無法連接到
ServerName
其他資訊:
無法開啟使用者預設資料庫。登入失敗。使用者
'UserName' 的登入失敗。(Microsoft SQL
Server,錯誤:4064)
- 在 SQL Server 2005 中使用 Sqlcmd 公用程式
訊息 4064,層級 11,狀態 1,伺服器
ServerName,行 1
無法開啟使用者預設資料庫。登入失敗。
訊息
18456,層級 14,狀態 1,伺服器 ServerName,行 1 使用者
'UserName' 的登入失敗。
- SQL Server 2000 Query Analyzer (QA)
無法連接到伺服器 TESTSERVER:
伺服器: 訊息 4064,層級
16,狀態 1
[Microsoft][ODBC SQL Server Driver][SQL Server]無法開啟使用者預設資料庫。登入失敗。
- SQL Server 2000 Server Enterprise Manager (SEM)
無法建立到 TESTSERVER 的連線 - 無法開啟使用者預設資料庫
'dbid'。已改用 master 資料庫。
請驗證 SQL Server 是否正在執行並檢查您的 SQL Server 註冊屬性 (在
TESTSERVER 節點上按滑鼠右鍵),然後再試一次。
- 使用 SQL Server 2000 OSQL 的命令提示字元
當您使用 C:\>osql -E 命令時,收到下列錯誤訊息: - SQL Server 7.0 Query Analyzer (QA)
無法連接到伺服器 \\TESTSERVER:
伺服器: 訊息 4062,層級
16,狀態 1
[Microsoft][ODBC SQL Server Driver][SQL Server]無法開啟使用者預設資料庫
'<ID>'。已改用 master 資料庫。
- 使用 SQL Server 7.0 OSQL 的命令提示字元
當您使用 C:\>osql -E 命令時,收到下列錯誤訊息: 無法開啟使用者預設資料庫 'dbid'。
已改用
master 資料庫。