基本DDL 语句之Create Database
基本DDL 语句之Create Database
在SQL 术语中数据库是一个容器包含了相关的基表视图索引存储过程和其他对象在创建这些对象之前必须有一个存储它们的数据库在数据库中对象被进一
步组织为有一个所有者对于某些类型的对象例如表只要属于不同的用户就可以在
同一个数据库中有同样的名称然而对于产品系统最好不要出现重复的名称一般情况
下大多数产品对象由数据库所有者拥有
为了创建数据库用户必须是系统管理员或者被授权使用Create Database 语句Create
Database 命令最简单的形式如下
Create Database AppDta
这条语句创建AppDta 数据库并且把SQL Server 的model 数据库定义复制到新数据
库中也就是说model 数据库中的每一个表视图存储过程等等的空拷贝都复制在新
数据库中创建SQL Server 为这个数据库创建两个NT Server 文件appdta.mdf 保存数据
appdta_log.ldf 保存事务日志的内容这两个文件的默认初始大小分别设置为model 数据库
的主文件和日志文件的大小如果需要SQL Server 将自动扩展这些文件
1.指定位置和大小
Create Database AppDta
On Primary
( Name = AppDta1,
Filename = 'E:sqk2005productiondataappdtal.mdf' ,
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB),
( Name = AppDta2,
Filename = 'E:sqk2005productiondataappdta2.mdf',
Size = 10MB,
FileGrowth = 10MB)
Log On
( Name = AppDtaLog1,
Filename = 'F:sqk2005productionlogappdtalog1.ldf',
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB )
On Primary
( Name = AppDta1,
Filename = 'E:sqk2005productiondataappdtal.mdf' ,
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB),
( Name = AppDta2,
Filename = 'E:sqk2005productiondataappdta2.mdf',
Size = 10MB,
FileGrowth = 10MB)
Log On
( Name = AppDtaLog1,
Filename = 'F:sqk2005productionlogappdtalog1.ldf',
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB )
2 修改数据库
在数据库创建之后可以使用Alter Database 语句增加新文件删除已有的文件或修改
文件的设如下例 的语句可增加一个新文件
Alter Database AppDta
Add File
( Name = AppDta3,
Filename = 'E:sqk2005productiondataappdta3.mdf',
Size = 10MB,
FileGrowth = 10MB )
--Alter Database AppDta
--Remove File AppDta2
--Alter Database AppDta
--Modify File
--( Name = AppDta1,
--FileGrowth=50MB )
Add File
( Name = AppDta3,
Filename = 'E:sqk2005productiondataappdta3.mdf',
Size = 10MB,
FileGrowth = 10MB )
--Alter Database AppDta
--Remove File AppDta2
--Alter Database AppDta
--Modify File
--( Name = AppDta1,
--FileGrowth=50MB )
3、定义文件组
数据库文件不包括事务日志文件可以组成文件组最初创建一个数据库时该数
据库的默认文件组包含了主文件和没有明确分配给用户定义文件组的从属文件在许多情
况下默认的文件组已经足够了对于有些系统在指定的设备上创建用户定义的文件组
可以提高数据库性能或可恢复性因为可以指定表或索引所在的文件组所以文件组提供
了一种间接手段可以把表和索引放在指定的设备上另外当使用一个包含了许多文件
的文件组时SQL Server 根据文件可用的自由空间把文件组中的数据按比例散布在文件
中下面是一个创建文件组的示例
Alter Database AppDta
Add FileGrouup AppDtaGroup1
Alter Database AppDta
Add File
( Name = AppDta4,
Filename = 'E:sqk2005productiondataappdta4.mdf',
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB),
( Name = AppDta5,
Filename = 'E:sqk2005productiondataappdta5.mdf',
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB)
To FileGroup AppDtaGroup1
--Alter Database AppDta
--Remove File AppDta4
--Alter Database AppDta
--Remove File AppDta5
--Alter Database AppDta
--Remove FileGroup AppDtaGroup1
--Alter Database AppData
--Modify FileGroup AppDtaGroupl Default
Add FileGrouup AppDtaGroup1
Alter Database AppDta
Add File
( Name = AppDta4,
Filename = 'E:sqk2005productiondataappdta4.mdf',
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB),
( Name = AppDta5,
Filename = 'E:sqk2005productiondataappdta5.mdf',
Size = 10MB,
MaxSize = 100MB,
FileGrowth = 10MB)
To FileGroup AppDtaGroup1
--Alter Database AppDta
--Remove File AppDta4
--Alter Database AppDta
--Remove File AppDta5
--Alter Database AppDta
--Remove FileGroup AppDtaGroup1
--Alter Database AppData
--Modify FileGroup AppDtaGroupl Default
在删除文件或者文件组时它们必须为空
也可以使用Alter Database 语句改变某个数据库的默认文件组例如下面的语句
Alter Database AppData
Modify FileGroup AppDtaGroupl Default
Modify FileGroup AppDtaGroupl Default