1. 程式人生 > >SQL Server資料庫之資料庫的建立、修改、檢視、刪除及分離與附加

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% )

    GO  

ALTER 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