写在最前,
写文章的初衷只是为了复习与记录自己的成长,笔者本人也还是学生,文章中难免会出现许多问题与错误,文章内容仅供参考,有不足的地方还请大家多多包涵并指正,谢谢~
使用Transact-SQL命令创建、修改、删除数据库的语法及参数说明:
创建数据库需准备创建数据库,确定数据库的名称和所有者(创建数据库的用户),确定存储该数据库的数据文件的初始大小及文件空间增长方式、日志、备份和系统存储参数等配置。
语法如下:
CREATE DATABASE 数据库名
[ON [PRIMARY] [< filespec > [,…n] [,<文件组选项> [,…n]] ]
[LOG ON {< filespec > [,…n]}]
…
]
< filespec >=
{(NAME=逻辑文件名,
FILENAME='物理文件名'
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment] ) [,…n] )}
<文件组选项>=
{
FILEGROUP 文件组名[DEFAULT]
<文件选项>
}
参数说明:
(1)PRIMARY:该选项是一个关键字,指定主数据库文件,若没有给出这个关键字,则默认文件序列第一个是主数据文件。
(2)LOG ON:指明事务日志文件的明确定义。
(3)FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应。
(4)SIZE:指定数据库的初始容量大小。
(5)MAXSIZE:指定操作系统文件可以增长到的最大尺寸。
(6)FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。
修改数据库:
数据库创建后,主数据文件和日志文件的物理地址就不允许被改变和删除。但数据文件和日志文件的大小、增长方式等属性可以改变,可以增加或删除次数据文件、次日志文件、文件组。
语法如下:
ALTER DATABASE 数据库名
{ ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP 文件组名 ]
ADD LOG FILE < filespec > [ ,...n ]
REMOVE FILE 数据库文件逻辑名
ADD FILEGROUP文件组名
REMOVE FILEGROUP文件组名
MODIFY FILE < filespec >
MODIFY NAME =数据库名
MODIFY FILEGROUP 文件组名{NAME =新文件组名}
参数说明:
(1)filespec参数定义如下:
( NAME =数据库文件逻辑名
[ , NEWNAME =新数据库文件逻辑名]
[ , FILENAME = '数据库物理文件名' ]
[ , SIZE = size ]
[ , MAXSIZE = { max_size | UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )
(2)ADD FILE:指定要添加文件。
(3)TO FILEGROUP:指定要将指定文件添加到的文件组。
(4)ADD LOG FILE:指定要将日志文件添加到指定的数据库。
REMOVE FILE:从数据库系统表中删除文件描述并删除物理文件。只有在文件为空时才能删除。(5)ADD FILEGROUP:指定要添加文件组。
(6)REMOVE FILEGROUP:从数据库中删除文件组并删除该文件组中的所有文件。只有在文件组为空时才能删除。
(7)MODIFY FILE:指定要更改给定的文件,更改选项包括 FILENAME、SIZE、FILEGROWTH和MAXSIZE。一次只能更改这些属性中的一种。必须在<filespec>中指定数据库文件逻辑名,以标识要更改的文件。如果指定了SIZE,那么新大小必须比文件当前大小要大。
(8)SIZE:指定数据库的初始容量大小。
(9)MAXSIZE:指定操作系统文件可以增长到的最大尺寸。
(10)FILEGROWTH:指定文件每次增加容量的大小,当指定数据为0时,表示文件不增长。
删除数据库:
利用Drop语句删除数据库,Drop语句可以从SQL Server中一次删除一个或多个数据库。
语法如下:
Drop database database_name[,…n]
收缩数据库:
利用DBCC语句收缩数据库
语法如下:
DBCC SHRINKDATABASE
(database_name[,target_percent]
[,{NOTRUNCATE|TRUNCATEONLY}])
参数说明:
target_percent:表示当数据库收缩后还剩下的自由空间。
NOTRUNCATE:被释放的文件空间还保持在数据库文件范围内,否则释放的空间被系统收回。
TRUNCATEONLY:将所有未使用的数据空间释放给操作系统使用。使用TRUNCATEONLY时,将忽略target_percent限制。
写在最后,
因本系列文章主要为复习,故重点关注数据库概念知识与理论知识,涉及使用对象资源管理器操作数据库的内容就不再赘述,笔记仅作为参考,若读者发现内容有误请私信指正,谢谢!