SQL Server資料庫之資料庫的建立、修改、檢視、刪除及分離與附加
一、建立資料庫
資料庫在磁碟上是以檔案為單位儲存的。由資料檔案和事務日誌檔案組成,一個數據庫至少應該包含一個數據檔案和事務日誌檔案。
SQL Server資料庫檔案
① 主要資料檔案(primary file):用來儲存資料庫的資料和資料庫的啟動資訊,其預設副檔名為.mdf。主要資料檔案是SQL Server 資料庫的主體,它是每個資料庫不可缺少的部分,而且每個資料庫只能有一個主要資料檔案。
② 次要資料檔案(secondaryfile):用來儲存主要資料檔案沒儲存的其他資料,其預設副檔名為.ndf。使用次要資料檔案可以擴充套件儲存空間。
③ 事務日誌檔案(transactionlog):用來記錄資料庫更新情況的檔案,其預設副檔名為.ldf。每個資料庫至少要有一個事務日誌檔案。
SQL Server的資料庫檔案組
檔案組(FileGroup)是將多個數據庫檔案集合起來形成的一個整體。在SQL Server中允許對檔案進行分組,以便於管理資料的分配或放置。
檔案組分為主檔案組(Primary File Group)和次檔案組(Secondary File Group)。
檔案和檔案組的設計規則:
① 檔案或檔案組不能由一個以上的資料庫使用。例如,檔案 stums.mdf 和stums.ndf 包含stums資料庫中的資料和物件,任何其它資料庫都不能使用這兩個檔案;
② 一個檔案只能存在於一個檔案組中;
③ 資料和事務日誌資訊不能屬於同一檔案或檔案組;
④ 事務日誌檔案不能屬於任何檔案組。程式碼範例:
create database stunew
on
(
name=stunew_data,//邏輯名
filename='d:\SQL Server\stunew_data.mdf',//儲存在磁碟中的檔名
size=1mb,
maxsize=20mb,
filegrowth=10%
)
(
name=stunew_data1,
filename='d:\SQL SERVER\stunew_data1.ndf',
size=10mb,
maxsize=20mb,
filegrowth=10%
)
log on
(
name=stunew_log,
filename='d:\SQL SERVER\stunew_log.ldf',
size=10mb,
maxsize=20mb,
filegrowth=10%
)
_____________________________________________________________________________________________________________________________
使用系統儲存過程檢視資料庫資訊
sp_helpdb:檢視有關資料庫和資料庫引數資訊。
sp_spaceused:檢視資料庫空間資訊。
sp_dboption:檢視資料庫選項資訊。
程式碼如下:
EXEC sp_helpdb 'STUMS'
EXEC sp_spaceused
EXEC sp_dboption 'STUMS'
__________________________________________________________________________________________________________________________________使用ALTER DATABASE語句修改資料庫
ALTER DATABASE <資料庫名>
{ ADD FILE <資料檔名> [,…n] [ TO FILEGROUP <檔案組名> ]
| ADD LOG FILE <日誌檔名> [,…n ]
| REMOVE FILE <邏輯檔名>
| MODIFY FILE <資料檔案>
| ADD FILEGROUP <檔案組名>
| REMOVE FILEGROUP <檔案組名>
| MODIFY FILEGROUP <檔案組名> { 檔案組屬性| NAME=<新檔案組名>}
}程式碼範例:
ALTER DATABASE STUMS
ADD FILE
(NAME=STUMS_data1,
FILENAME='D:\SQL\STUMS_data1.ndf',
SIZE=5MB,
MAXSIZE=100MB,
FILEGROWTH=10% )
GOALTER DATABASE STUMS
MODIFY FILE
(NAME=STUMS,
SIZE=35MB,
MAXSIZE=100MB,
FILEGROWTH=5MB)
GO
ALTER DATABASE STUMS
REMOVE FILE STUMS_data1
GO
ALTER DATABASE STUMS
ADD LOG FILE
(NAME=STUMS_log2,
FILENAME='D:\SQL\STUMS_log2.ldf',
SIZE=3MB)
GO
____________________________________________________________________________________________________
縮減資料庫容量
1.自動收縮資料庫容量使用ALTERDATABASE語句可以實現使用者資料庫容量的自動收縮。其語法格式如下:
ALTER DATABASE <資料庫名>
SET AUTO_SHRINK ON/OFF
引數說明:
ON:將資料庫設為自動收縮。
OFF:將資料庫設為不自動收縮。
2.手動收縮資料庫容量DBCC SHRINKDATABASE(database_name[,new_size
[,’MASTEROVERRIDE’]])
其中,
database_name:是要縮減容量的資料庫名稱。
new_size:指明要縮減資料庫容量至多少,如果不指定,將縮到最小容量。
MASTEROVERRIDE:是指縮減master資料庫。
使用許可權預設為dbo。
____________________________________________________________________________________________________
使用sp_renamedb重新命名資料庫
EXECsp_renamedb oldname,newname
其中,EXEC為執行命令語句;sp_renamedb為系統儲存過程;oldname為更改前的資料庫名;newname為更改後的資料庫名。
程式碼示例:EXEC sp_renamedb 'STUNEW','STU_123‘____________________________________________________________________________________________________
刪除資料庫
1)使用T-SQL語句刪除資料庫
(1)用DROP語句刪除資料庫
DROPDATABASE database_name[,database_name…]
其中,
DROPDATABASE:表示刪除資料庫;
database_name:為要刪除的資料庫名稱。
程式碼示例:
DROP DATABASRE stums_1
(2)用sp_dbremove系統儲存過程刪除資料庫
EXEC sp_dbremove database_name
其中,database_name為要刪除的資料庫名稱。
____________________________________________________________________________________________________
分離資料庫
分離資料庫將從SQLServer 移除資料庫,但是保持在組成該資料庫的資料和事務日誌檔案中的資料完好無損
exec sp_detach_db STUMS
附加資料庫
附加資料庫的工作是分離資料庫的逆操作,通過附加資料庫,可以將分離出去的資料庫重新加入SQLSever伺服器。CREATE DATABASEstudentsys
ON( FILENAME='D:\sql資料庫\JX.mdf’)
LOG ON( FILENAME='D:\sql資料庫\JX.ldf')
FOR ATTACH