共計 1279 個字符,預計需要花費 4 分鐘才能閱讀完成。
本篇內容介紹了“怎么用 sql 語句實現分離和附加數據庫”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
對于用 Manage Studio 自己看著界面操作就可以應付了。
分離數據庫:對于用存儲過程來分離數據庫,如果發現無法終止用戶鏈接,可以使用 ALTER DATABASE 命令,并利用一個能夠中斷已存在鏈接的終止選項來把數據庫設置為 SINGLE_USER 模式,設置為 SIGLE_USER 代碼如下:ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE 下面是分離數據庫的 CMD 命令 EXEC sp_detach_db DatabaseName 一旦一個數據庫分離成功,從 SQL Server 角度來看和刪除這個數據庫沒有什么區別。
附加數據庫:對于附加數據庫,可以使用 sp_attach_db 存儲過程,或者使用帶有 FOR ATTACH 選項的 CREATE DATABASE 命令,在 SQL Server2005 或更高的版本中推薦使用后者,前者是為了向前兼容,它正在逐漸淘汰,而后者更提供更多對文件的控制。CREATE DATABASE databasename ON (FILENAME = D:\Database\dbname.mdf) FOR ATTACH | FOR ATTACH_REBUILD_LOG 然而對于這樣的附加,我們要注意幾個地方。因為涉及到重建日志。1. 對于一個讀 / 寫數據庫,如果含有一個可用的日志文件,無論使用 FOR ATTACH,還是使用 FOR ATTACH_REBULD_LOG,都是一樣,都不會對此數據庫重建日志文件。如果日志文件不可用或者物理上沒有該日志文件,使用 FOR ATTACH 或 FOR ATTACH_REBULID_LOG 都會重建日志文件,所以如果我們復制一個帶有大量日志文件的數據庫到另一臺服務器中,就可以只復制.mdf 文件,不用復制日志文件,然后使用 FOR ATTACH_REBULD_LOG 選項重建日志。條件是這臺服務器將主要使用或只用改數據庫的副本進行讀操作。2. 對于一個只讀數據庫,就有點區別了,如果日志文件不可用,那么就不能更新主文件,所以也就不能重建日志,因此當我們附加一個只讀數據庫是,必須在 FOR ATTACH 從句中指定日志文件。如果使用附加數據庫重建了日志文件。使用 FOR ATTACH_REBUILD_LOG 會中斷日志備份鏈,進行這種操作之前最好做一次數據庫完全備份。使用 sp_detach_db 存儲過程一個好處就是可以保證一個數據庫是被干凈的關閉,那日志文件就不是附加數據庫所必須的,我們可以使用 FOR ATTACH_REBUILD_LOG 命令重建日志,得到一個最小的日志文件。也算是一種快速收縮一個大日志文件的方法。
“怎么用 sql 語句實現分離和附加數據庫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!