T-SQL语句之管理数据库
二、
数据库的管理
1>使用系统存储过程查看数据库
例1
查看数据库sales的属性
sp_helpdb sales
例2
查看所有数据库的属性
sp_helpdb
2>修改数据库
例1
为数据库sample添加一个数据文件sample_dat2和日志文件sample_log2。
ALTER DATABASE sample
(NAME=sample_dat2,
FILENAME=’d:\SQL\sample_dat2.ndf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1)
ALTER DATABASE sample
ADD LOG FILE
(NAME=sample_log2,
FILENAME=’d:\SQL\sample_log2.ldf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1)
例2
为数据库sample添加一个文件组USER1,并向该文件组添加两个数据文件sampuser_dat1和sampuser_dat2。
ALTER DATABASE sample
ADD FILEGROUP USER1
ALTER DATABASE sample
ADD FILE
(NAME=sampuser_dat1,
FILENAME=’d:\SQL\sampuser_dat1.ndf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1),
(NAME=sampuser_dat2,
FILENAME=’d:\SQL\sampuser_dat2.ndf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1)
TO FILEGROUP USER1
例3
从数据库sample中删除文件sampuser_dat2。
ALTER DATABASE sample
REMOVE FILE sampuser_dat2
例4
删除数据库sample中的文件组USER1。
ALTER DATABASE sample
REMOVE FILE sampuser_dat1
ALTER DATABASE sample
REMOVE FILE sampuser_dat2
ALTER DATABASE sample
REMOVE FILEGROUP USER1
注意:在删除文件组时必须先删除文件组中所包含的文件。
例5
修改数据库sample中数据文件sample_dat2的属性,将其初始大小改为10MB,最大容量改为80MB,增长幅度改为5MB。
ALTER DATABASE sample
MODIFY FILE
(NAME=sample_dat2,
SIZE=10,
MAXSIZE=80,
FILEGROWTH=5)
例6
修改数据库business中文件组business_group的属性将其改名为group1,
并设置为DEFAULT属性。
ALTER DATABASE business
MODIFY FILEGROUP business_group NAME=group1
ALTER DATABASE business
MODIFY FILEGROUP group1 DEFAULT
注意:文件组的属性有三种,READONLY(只读),READWRITE(读写),DEFAULT(默认)。
例7
将数据库student改名为stud_teacher。
ALTER DATABASE student
MODIFY NAME=stud_teacher
3>使用系统存储过程重命名数据库
例
将数据库business更名为company。
sp_renamedb ‘business’ ‘company’
注意:’business’是数据库的当前名称,’company’是数据库的新名称。
4>数据库的收缩
(1)
自动收缩
例
将数据库sales的收缩设为自动收缩。
ALTER DATABASE sales
SET AUTO_SHRINK on
注意:不能将整个数据库收缩到比其原始大小还要小。例如,如果数据库创建时的大小。例如,如果数据库创建时的大小为10MB,(假定数据库中所有数据已经删除)。
(2)
手工收缩
例1
缩小sales数据库的大小,使得该数据库中的文件有20%的可用空间。
DBCC SHRINKDATABASE(sales,20)
例2
将数据库sales中名为sales_data的文件收缩至7MB。
USE sales
GO
DBCC SHRINKFILE(sales_data,7)
4>删除数据库
例1
删除数据库student。
DROP DATABASE student
例2
删除sample和student数据库。
DROP DATABASE sample,student
注意:
●4个系统数据库master、tempdb、model、msdb不能删除。
●正在使用的数据库不能删除。
●数据库被删除之后,其文件及其数据都将从服务器上的磁盘中被删除。一旦删除数据库,它即将永久删除,所以删除数据库时一定要谨慎。
数据库的管理
1>使用系统存储过程查看数据库
例1
查看数据库sales的属性
sp_helpdb sales
例2
查看所有数据库的属性
sp_helpdb
2>修改数据库
例1
为数据库sample添加一个数据文件sample_dat2和日志文件sample_log2。
ALTER DATABASE sample
(NAME=sample_dat2,
FILENAME=’d:\SQL\sample_dat2.ndf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1)
ALTER DATABASE sample
ADD LOG FILE
(NAME=sample_log2,
FILENAME=’d:\SQL\sample_log2.ldf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1)
例2
为数据库sample添加一个文件组USER1,并向该文件组添加两个数据文件sampuser_dat1和sampuser_dat2。
ALTER DATABASE sample
ADD FILEGROUP USER1
ALTER DATABASE sample
ADD FILE
(NAME=sampuser_dat1,
FILENAME=’d:\SQL\sampuser_dat1.ndf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1),
(NAME=sampuser_dat2,
FILENAME=’d:\SQL\sampuser_dat2.ndf’,
SIZE=4,
MAXSIZE=10,
FILEGROWTH=1)
TO FILEGROUP USER1
例3
从数据库sample中删除文件sampuser_dat2。
ALTER DATABASE sample
REMOVE FILE sampuser_dat2
例4
删除数据库sample中的文件组USER1。
ALTER DATABASE sample
REMOVE FILE sampuser_dat1
ALTER DATABASE sample
REMOVE FILE sampuser_dat2
ALTER DATABASE sample
REMOVE FILEGROUP USER1
注意:在删除文件组时必须先删除文件组中所包含的文件。
例5
修改数据库sample中数据文件sample_dat2的属性,将其初始大小改为10MB,最大容量改为80MB,增长幅度改为5MB。
ALTER DATABASE sample
MODIFY FILE
(NAME=sample_dat2,
SIZE=10,
MAXSIZE=80,
FILEGROWTH=5)
例6
修改数据库business中文件组business_group的属性将其改名为group1,
并设置为DEFAULT属性。
ALTER DATABASE business
MODIFY FILEGROUP business_group NAME=group1
ALTER DATABASE business
MODIFY FILEGROUP group1 DEFAULT
注意:文件组的属性有三种,READONLY(只读),READWRITE(读写),DEFAULT(默认)。
例7
将数据库student改名为stud_teacher。
ALTER DATABASE student
MODIFY NAME=stud_teacher
3>使用系统存储过程重命名数据库
例
将数据库business更名为company。
sp_renamedb ‘business’ ‘company’
注意:’business’是数据库的当前名称,’company’是数据库的新名称。
4>数据库的收缩
(1)
自动收缩
例
将数据库sales的收缩设为自动收缩。
ALTER DATABASE sales
SET AUTO_SHRINK on
注意:不能将整个数据库收缩到比其原始大小还要小。例如,如果数据库创建时的大小。例如,如果数据库创建时的大小为10MB,(假定数据库中所有数据已经删除)。
(2)
手工收缩
例1
缩小sales数据库的大小,使得该数据库中的文件有20%的可用空间。
DBCC SHRINKDATABASE(sales,20)
例2
将数据库sales中名为sales_data的文件收缩至7MB。
USE sales
GO
DBCC SHRINKFILE(sales_data,7)
4>删除数据库
例1
删除数据库student。
DROP DATABASE student
例2
删除sample和student数据库。
DROP DATABASE sample,student
注意:
●4个系统数据库master、tempdb、model、msdb不能删除。
●正在使用的数据库不能删除。
●数据库被删除之后,其文件及其数据都将从服务器上的磁盘中被删除。一旦删除数据库,它即将永久删除,所以删除数据库时一定要谨慎。