SQLServer創建數據庫詳解


1、創建數據庫介紹

在創建數據庫之前,需要先確定數據庫的名稱、所有者、大小、存儲該數據庫的文件和文件組。

數據庫所有者:創建數據庫的用戶。一般情況下,大多數產品對象由數據庫所有者擁有。

2、創建數據庫注意事項

  • 創建數據庫需要擁有CREATE DATABASE、CREATE ANY DATABASE或ALTER ANY DATABASE權限。

  • 創建數據庫的用戶將成爲該數據庫的所有者。

  • 針對一個SQL Server實例,最多可以創建32767個數據庫。

  • 數據庫名稱必須遵循爲標識符指定的規則。

  • 在創建新數據庫同時,model數據庫中的所有用戶定義對象都會複製到新創建的數據庫中。可以向model數據庫中添加任何通用的對象(如表、視圖、存儲過程和數據類型),然後在創建的數據庫可以將這些對象複製到新創建的數據庫當中。

3、創建數據庫的語法格式

語法格式如下:


      CREATE DATABASE database_name
[ ON
[ PRIMARY ] [ <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON { <filespec> [ ,...n ] } ]
]
[ COLLATE collation_name ]
][;]


參數說明:

database_name:數據庫名稱。

ON:指定以顯式定義方式指定存儲數據庫數據部分的數據文件。

PRIMARY:指定<filespec>列表中的主文件。在<filespec>項中的第一個文件將成爲主文件。如果沒有指定PRIMARY則默認第一個文件將成爲數據庫主文件。

LOG ON:指定存儲數據庫日誌的日誌文件。LOG ON後跟着以逗號分隔的用於定義日誌文件的<filespec>項列表。不指定LOG ON,將自動創建一個日誌文件,文件大小爲該數據庫的所有數據文件大小總和的1/4或512 KB,取兩者之中的較大者。

COLLATE collation_name:指定數據庫的默認排序規則。排序規則名稱包括Windows排序規則、SQL排序規則名稱。未指定排序規則,則將SQL Server實例的默認排序規則分配爲數據庫的排序規則。

<filespec>部分主要用於控制文件屬性,語法格式如下:



(
NAME = logical_file_name ,
FILENAME = 'os_file_name'
[ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
) [ ,...n ]


logical_file_name:指定文件的邏輯名稱。logical_file_name必須在數據庫中唯一,必須符合規定的標識符規則。

' os_file_name ':指定操作系統(物理)文件名稱。執行創建數據庫語句前,指定文件路徑必須存在。如果指定了UNC(通用命名約定)路徑,則無法設置SIZE、MAXSIZE和FILEGROWTH參數。

size:指定文件的初始大小。未指定主文件指定size,數據庫引擎將使用model數據庫中的主文件的大小。如果指定了輔助數據文件或日誌文件,但未指定該文件的size,則數據庫引擎將以1 MB作爲該文件的大小。

可以使用千字節(KB)、兆字節(MB)、千兆字節(GB)或兆兆字節(TB)後綴,默認單位爲MB。

max_size:指定文件可增大到的最大值,可以使用KB、MB、GB和TB後綴,默認單位爲MB。

UNLIMITED:指定文件可以增長到磁盤空間已滿。在SQL Server中,指定爲不限制增長的日誌文件的最大值爲2 TB,而數據文件的最大值爲16 TB。

growth_increment:指定每次需要新空間時爲文件添加的空間量。growth_increment值不能超過MAXSIZE設置值。該值可以使用MB、KB、GB、TB或百分比(%)爲單位指定。默認值爲MB。growth_increment值爲0時表明自動增長被關閉,不允許增加空間。

如果未指定FILEGROWTH,則數據文件的默認值爲1 MB,日誌文件的默認增長比例爲10%,並且最小值爲64 KB。

<filegroup>部分主要用於控制文件組屬性,語法格式如下:

 


    FILEGROUP filegroup_name [ DEFAULT ]
<filespec> [ ,...n ]


filegroup_name:必須在數據庫中唯一,不能是系統提供的名稱PRIMARY和PRIMARY_LOG。

DEFAULT:指定文件組爲數據庫中的默認文件組。

4、 創建數據庫示例

  1. 最簡單的創建數據庫示例

create database TestDB

會根據SQLServer默認設置(文件存儲位置、文件增加大小等)創建數據庫。

2.指定數據和事務日誌文件的數據庫示例


 IF DB_ID (N'TestDB') is not null 
-- 判斷數據庫是否存在如果存在則先刪除
DROP DATABASE TestDB
GO
CREATE DATABASE TestDB
ON
( NAME = TestDB,-- 邏輯數據庫文件名
FILENAME = 'D:\TestDB.mdf',
SIZE = 10,
MAXSIZE = 200,
FILEGROWTH = 5 )
LOG ON
( NAME = TestDB_log,-- 邏輯數據庫日誌文件名
FILENAME = 'D:\TestDB_log.ldf',
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 5MB ) ;


3.指定多個數據文件和事務日誌文件示例


  USE master
GO
IF DB_ID (N'TestDB') is not null -- 判斷數據庫是否存在如果存在則先刪除
DROP DATABASE TestDB
GO
CREATE DATABASE TestDB
ON
PRIMARY
(NAME = TestDB1,
FILENAME = 'd:\TestDB1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = TestDB2,
FILENAME = 'd:\TestDB2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = TestDB_log1,
FILENAME = 'd:\TestDB_log1.ldf',
SIZE = 30MB,
MAXSIZE = 100,
FILEGROWTH = 10),
(NAME = TestDB_log2,
FILENAME = 'd:\TestDB_log2.ldf',
SIZE = 100MB,
MAXSIZE = 500,
FILEGROWTH = 50) ;


   

4.創建具有文件組的數據庫下面的語句將創建數據庫Sales,該數據庫具有以下文件組。


  USE master
GO
IF DB_ID (N'TestDB') is not null -- 判斷數據庫是否存在如果存在則先刪除
DROP DATABASE TestDB
GO
CREATE DATABASE TestDB
ON PRIMARY -- 數據庫主文件
( NAME = TestDB1,
FILENAME = 'd:\TestDB1.mdf',
SIZE = 20,
MAXSIZE = 100,
FILEGROWTH = 10% ),
( NAME = TestDB2,
FILENAME = 'd:\TestDB2.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5% ),
FILEGROUP DBGroup1
( NAME = TestDB3,
FILENAME = 'd:\TestDB3.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = TestDB4,
FILENAME = 'd:\TestDB4.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
FILEGROUP DBGroup2
( NAME = DB1_Group2,
FILENAME = 'd:\DB1_Group2.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = DB2_Group2,
FILENAME = 'd:\DB2_Group2.ndf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = TestDB_log,
FILENAME = 'd:\TestDB_log.ldf',
SIZE = 50MB,
MAXSIZE = 500MB,
FILEGROWTH = 10MB ) ;



IT技術分享社區


個人博客網站:https://programmerblog.xyz


文章推薦 程序員效率:畫流程圖常用的工具 程序員效率:整理常用的在線筆記軟件 遠程辦公:常用的遠程協助軟件,你都知道嗎? 51單片機程序下載、ISP及串口基礎知識 硬件:斷路器、接觸器、繼電器基礎知識





本文分享自微信公衆號 - IT技術分享社區(gh_a27c0758eb03)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章