CREATE 语句
CREATE语句的开头都是一样的,然后是特定的细节。
CREATE <object type> <object name>
一、CREATE DATABASE
CREATE DATABASE命令用于创建一个数据库,创建一个数据库的最基本语法如下所示:
CREATE DATABASE <database name>
CREATE DATABASE的完整语法
CREATE DATABASE <NewDataBase> [ON [PRIMARY] ([NAME = <'logical file name'>,] FILENAME = <'file name'> [, SIZE = <size in kilobytes,megabytes,gigabytes,or terabytes>] [, MAXSIZE = <size in kilobytes,megabytes,gigabytes,or terabytes>] [, FILEGROWTH = <kilobytes,megabytes,gigabytes,or terabytes|percentage>])] [LOG ON ([NAME = <'logical file name'>,] FILENAME = <'file name'> [, SIZE = <size in kilobytes,megabytes,gigabytes,or terabytes>] [, MAXSIZE = <size in kilobytes,megabytes,gigabytes,or terabytes>] [, FILEGROWTH = <kilobytes,megabytes,gigabytes,or terabytes|percentage>])] [COLLATE <collation name>] [FOR ATTAH [WITH <service broker>]| FOR ATTACH_REBUILD_LOG| WITH DB_CHAINING ON| OFF | TRUSTWORTHY ON|OFF] [AS SNAPSHOT OF <source database name>] [;]
下面来说明一下:
1、ON
ON用于两个地方:一是定义存储数据的文件位置,二是定义存储日志的文件位置。PRIMARY意味着随后是无上上存储数据的主文件组。也可以将数据存储在所谓的附属文件组里。
SQL Server允许将数据库存储在多个文件中,而且允许将这些文件放在一个逻辑组里面,称为文件组
2、NAME
这个选项用于指定定义的文件的名称,但只是一个逻辑名称-SQL Server在内部使用该名称引用该文件。当需要修改(扩充或缩小)数据库和/或文件的大小事,需要使用这个名称。
3、FILENAME
这个选项,顾名思义-实际操作系统文件在磁盘上的物理名称,在该文件中将存储数据或日志(取决于定义哪个部分)。默认情况下,文件位于
\Program Files\Microsoft SQLServer10.MSSQLSERVER\MSSQL(或者SQL Server安装主目录)的\Data子目录下。如果是处理物理数据库文件,那么名称将和数据库名称一样,但是带有.mdf扩展名。如果处理日志文件,那么名称和数据库文件的名称一样,但是有后缀_Log以及扩展名.ldf。建议使用默认扩展名.mdf(数据库)和.ldf(日志文件)。附属文件的扩展名是.ndf。
4、SIZE
数据库的大小。默认情况下大小的单位是M(兆字节),但是可以通过在数字后面使用KB而不是MB来指定kilobyte(千字节),或者更大的单位GB或者甚至TB。这个值至少与模型数据库一样大,而且必须是整数(不能带小数),否则出错。如果没有为SIZE提供一个值,那么数据库的初始大小值与模型数据库一样。
5、MAXSIZE
SQL Server有一个机制允许数据库在必要的时候自动分配附加的磁盘空间(增加大小)。MAXSIZE是数据库可以增加的最大大小。默认情况下,单位是M,但是同SIZE一样,可以使用KB、GB、TB来指定不同的单位。稍微不同的是,这个选项没有固定的默认值。如果没有提供这个值,那么认为没有最大值-实际的大小可以达到磁盘空间用完为止。
如果数据库的大小达到了MAXSIZE参数指定的值,那么将开始出错,插入数据将不能执行。如果日志达到最大值,那么在数据库中将无法执行任何日志活动。
6、FILEGROWTH
FILEGROWTH主要用于确定数据库达到这个最大值的速度。提供一个值来说明文件每次增加多少字节(以KB、MB、GB、TB为单位)。或者,也可以按照指定数据库文件的每次增长百分比。如果选择百分比,那么数据库大小将按照当前数据文件的大小以指定的百分比增长。因此,如果指定一个初始大小为1GB的数据库文件以20%的速度增长,那么第一次扩展后为1.2GB,第二次扩展后为1.44GB。
7、LOG ON
LOG ON选项允许指定哪些文件需要日志,以及这些文件位于什么位置。如果没有指定该选项,那么SQL Server将在一个单独文件中创建日志,日志文件默认的大小是数据库文件的25%。在大多数其他方面,日志文件与主数据库文件具有同样的文件规范参数。
提示:
日志文件最好存储在与主数据文件不同的磁盘分区上。这样除了提供针对某个磁盘驱动器失效的额外安全措施外,还可以避免主数据文件与日志文件竞争磁盘文件的输入输出口。
8、COLLATE
该选项处理排序、字母大小写以及是否重音敏感问题。在安装SQL Server时,提供了默认的排序规则,但是可以在数据库层重写该默认值。
9、FOR ATTACH
可以使用该选项将已存在的一些数据库文件附加到当前的服务器上。这里的文件必须是数据库的一部分,并且在某个时候已经使用sp_detach_db恰当地与数据库分离了。这样贬低了sp_detach_db的功能,但是带有FOR ATTACH的CREATE DATABASE命令具有可以访问32000多个文件的优点,而sp_attach_db只限于16个文件。
如果使用FOR ATTACH,那么必须完成文件位置信息中的ON PRIMARY部分的设置。CREATE DATABASE参数列表的其他部分可以省略,只要把数据库的文件路径附加到与原来数据库分离时相同的文件路径中。
10、WITH DB CHAINING ON|OFF