1、查看数据库的状态
目录视图:select name , state_desc from sys.databases where name = 'stusystem'
函数:select DATABASEPROPERTYEX('stusystem','status')
存储过程:sp_helpdb stusystem
2、修改数据库
2-1修改数据库名称
alter database database_name modify name = new_name
exec sp_renamedb 'studentsystem','stusystem'
2-2扩大数据库
alter database stusystem
add file
( name , filename , size , maxsize , filegrowth )
2-3收缩数据库,收缩后的数据库不能小于数据库的最小大小
自动数据库收缩:在alter table 语句中,可以将auto_shrink选项设置为on
手动收缩数据库:
desc shrinkdatabase
( database_name | database_id | 0 要收缩的数据库名称或者ID,如果指定为0,则使用当前数据库
[ , target_percent ] 收缩后的数据库文件中所需的剩余可用空间百分比
)
2-4收缩数据库文件
手动数据库文件收缩
dbcc shrinkfile
(
{ file_name | file_id }
{ [ , emptyfile ]
| [ [ , target_size ] [ , { notruncate | truncateonly } ] ]
}
)
[ with no_infomsgs ]
2-5移动数据库文件(适用于同意SQL Server实例)
alter database database_name
modify file ( name = logical_name , filename = 'new_path\os_file_name' )
2-6删除数据库
drop database database_name [ , . . . n]
2-7分离数据库
分离数据库是指将数据库从SQL Server实例中删除 , 但使数据库在其数据文件和事务日志中保持不变
如果存在下列任何情况,则不能分离数据库
该数据库是系统数据库
该数据库已经复制并发布。如果要分离数据库,必须首先执行sp_replicationdboption
数据库中存在数据库快照。必须首先删除所有数据库快照再分离数据库
数据库正在某个数据库镜像会话中进行镜像。必须先终止该会话再分离数据库
数据库处于可疑状态,必须将数据库设为紧急模式再分离数据库
exec sp_detach_db stusystem
2-8附加数据库
create database stusystem
on
(
name = stusystem_DAT,
filename = 'E:\SQL\stusystem\stusystem_DAT.mdf',
size = 20MB,
maxsize = 40MB,
filegrowth = 5%
),
(
name = stusystem_DAT1,
filename = 'E:\SQL\stusystem\stusystem_DAT1.ndf',
size = 20MB,
maxsize = 40MB,
filegrowth = 5%
),
(
name = stusystem_DAT2,
filename = 'E:\SQL\stusystem\stusystem_DAT2.ndf',
size = 20MB,
maxsize = 40MB,
filegrowth = 5%
)
log on
(
name = stusystem_LOG,
filename = 'E:\SQL\stusystem\stusystem_LOG.ldf',
size = 10MB,
maxsize = 20MB,
filegrowth = 1MB
)
for attach
3、数据库快照(Express 版本不支持,必须保存在NTFS文件系统的分区上)
3-1工作原理
数据库快照与源数据库相关。数据库快照必须与数据库在同一服务器实例上
数据库快照运行在数据页级
3-2创建数据库快照
create database database_snapshot_name
on
(
name = logical_file_name ,
filename = 'os_file_name' ,
)[ , . . . n ]
as snapshot of source_database_name
3-3数据库恢复到数据库快照
resotre database database_name from database_snapshot = database_snapshot_name