程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 用sql語句完成分別和附加數據庫的辦法

用sql語句完成分別和附加數據庫的辦法

編輯:MSSQL

用sql語句完成分別和附加數據庫的辦法。本站提示廣大學習愛好者:(用sql語句完成分別和附加數據庫的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是用sql語句完成分別和附加數據庫的辦法正文


關於用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敕令重建日記,獲得一個最小的日記文件。也算是一種疾速壓縮一個年夜日記文件的辦法。
Author:興百放
Web:Http://xbf321.cnblogs.com
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved