数据库的类型分为:系统数据库和用户数据库。
用户数据库物理文件的组成包括:数据库文件和日志文件。
数据库文件: .mdf(主数据文件)或.ndf(次要数据文件)。
日志文件: .ldf。
一个数据库必须且只能包含一个mdf,但可以包含多个ndf和ldf(至少一个)。
use master
go
--创建数据库
create database StudentManageDB
on primary
(
name='StudentManageDB_data',--数据库文件的逻辑名
filename='D:\DB\StudentManageDB_data.mdf',--数据库物理文件名(绝对路径)
size=10MB,--数据库文件初始大小
filegrowth=5MB --数据文件增长量
)
--创建日志文件
log on
(
name='StudentManageDB_log',
filename='D:\DB\StudentManageDB_log.ldf',
size=5MB,
filegrowth=2MB
)
go
go是批处理的标志,表示SQL Server将这些SQL语句编译为一个执行单元,提高执行效率。一般是将一些逻辑相关的业务操作语句放在同一批中,这完全由业务需求和代码编写者决定。
go是SQLServer的批处理命令,只有代码编辑器才能识别并处理,编辑其他应用程序就不能使用该命令,由于每个批处理之间是独立的,因此,在一个批处理出现错误时,并不会影响其他批处理中SQL代码的运行。
use master
go
--判断当前数据库是否存在
if exists(select * from sysdatabases where name='StudentManageDB' )
drop database StudentManageDB
go
--创建数据库
create database StudentManageDB
on primary
(
name='StudentManageDB_data',--数据库文件的逻辑名
filename='D:\DB\StudentManageDB_data.mdf',--数据库物理文件名(绝对路径)
size=10MB,--数据库文件初始大小
filegrowth=5MB --数据文件增长量
),
(
name='StudentManageDB_data1',
filename='D:\DB\StudentManageDB_data1.ndf',
size=10MB,
filegrowth=5MB
)
--创建日志文件
log on
(
name='StudentManageDB_log',
filename='D:\DB\StudentManageDB_log.ldf',
size=5MB,
filegrowth=2MB
),
(
name='StudentManageDB_log1',
filename='D:\DB\StudentManageDB_log1.ldf',
size=5MB,
filegrowth=2MB
)
go
drop删除数据库后将不可恢复,使用要谨慎!
在早期版本的数据库系统中,当数据库服务运行中通常情况下无法直接移动和复制数据库文件。所谓的分离数据库就是将正在使用的数据库文件解除服务的限制。
语法如下:
exec sp_detach_db @dbname = 数据库名称
附加数据库就是将指定位置的数据库文件加入到数据库文件中并运行。分离出去的数据库只有附加后,用户才能通过DBMS操作数据。
语法如下:
exec sp_attach_db @dbname=数据库名称,
@filename1=数据库主文件物理文件路径,
@filename2=数据库日志文件物理文件路径
示例代码:
--分离数据库
exec sp_detach_db @dbname=StudentManageDB
--附件数据库方法1
exec sp_attach_db @dbname=StudentManageDB,
@filename1='E:\StudentManageDB_data.mdf',
@filename2='E:\StudentManageDB_log.ldf'
--附件数据库方法2
exec sp_attach_db @dbname=StudentManageDB,
'E:\StudentManageDB_data.mdf',
'E:\StudentManageDB_log.ldf'