database_name数据库名称,不能超过128 个字符,由于系统会在其后添加5 个字符的逻辑后缀,因此实际能指定的字符数为123 个。 on指明数据库文件和文件组的明确定义。 PRIMARY指明主数据库文件或主文件组。主文件组的第一个文件被认为是主数据库文件,其中包含了数据库的逻辑启动信息和数据库的系统表。如果没有PRIMARY 项,则在CREATE DATABASE 命令中列出的第一个文件将被默认为主文件。 filespec文件说明。 n占位符表明可以指定多个类似的对象。 filegroupspec文件组说明。 LOG ON>指明事务日志文件的明确定义。如果没有LOG ON 选项,则系统会自动产生一个文件名前缀与数据库名相同,容量为所有数据库文件大小1/4 的事务日志文件。 COLLATE指明数据库使用的校验方式。collation_name 可以是Windows 的校验方式名称,也可以是SQL 校验方式名称。如果省略此子句,则数据库使用当前的SQL Server 设置的校验方式。 FOR LOAD此选项是为了与SQL Server 7.0 以前的版本兼容而设定的。读者可以不用管它。RESTORE 命令可以更好地实现此功能。 FOR ATTACH用于附加已经存在的数据库文件到新的数据库中,而不用重新创建数据库文件。使用此命令必须指定主文件。被附加的数据库文件的代码页(Code Page)和排序次序(Sort Order)必须和目前SQL Server 所使用的一致。建议使用sp_attach_db 系统存储过程来代替此命令(关于sp_attach_db 系统存储过程的用法请参见本章的第7 节“移动和复制数据库”)。CREATE DATABASE FOR ATTACH 命令只有在指定的文件数目超过16 个时才必须使用。 NAME指定文件在SQL Server 中的逻辑名称。当时用FOR ATTACH 选项时,就不需要使用 NAME 选项了。 FILENAME 指定文件在操作系统中存储的路径名和文件名称。 SIZE指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server 默认其与模板数据库中的主文件大小一致,其它数据库文件和事务日志文件则默认为1 MB。 指定大小的数字size 可以使用KB、 MB、 GB、 和TB 后缀,默认的后缀是MB。 size 中不能使用小数,其最小值为512 KB, 默认值是1MB。 主文件的size 不能小于模板数据库中的主文件(关于模板数据库的介绍请参见本章最后一节)。 MAXSIZE指定文件的最大容量。如果没有指定MAXSIZE, 则文件可以不断增长直到充满磁盘。 UNLIMITED指明文件无容量限制。 FILEGROTH指定文件每次增容时增加的容量大小。增加量可以为确定的以KB、 MB 作后缀的字节数或以%作后缀的被增容文件的百分比来表示。缺省后缀为MB。 如果没有指定FILEGROWTH,则缺省值为10%, 每次扩容的最小值为64 KB。 CREATE DATABASE 命令在SQL Server 中执行时使用模板数据库来初始化新建的数据库(使用FOR ATTACH 选项时除外)。在模板数据库中的所有用户定义的对象和数据库的设置都会被复制到新数据库中。每个数据库都有一个所有者(Database Owner,简称DBO),创建数据库的用户被默认为数据库所有者。可以通过sp_changedbowner 系统存储过程来更改数据库所有者。 例6-1: 创建一个与上节中用Enterprise Manager 创建的数据库类似的数据库。create database mydbon primary( name = mydb_data1,filename = 'd:\sql data\mydb_data1.mdf',size = 1,maxsize = unlimited,filegrowth = 10% ),filegroup data2( name = mydb_data2,filename = 'd:\sql data\mydb_data2.ndf',size = 2,maxsize = 100,filegrowth = 1 ),filegroup data3( name = mydb_data3,filename = 'd:\sql data\mydb_data3.ndf',size = 3,maxsize = 50,filegrowth = 500kb )log on( name = 'mydb_log1',filename = 'd:\sql data\mydb_log1.ldf',size = 1mb,maxsize = 25mb,filegrowth = 10% ),( name = 'mydb_log2',filename = 'd:\sql data\mydb_log2.ldf',size = 1mb,maxsize = 10mb,filegrowth = 10% ),( name = 'mydb_log3',filename = 'd:\sql data\mydb_log3.ldf',size = 1mb,maxsize = 5mb,filegrowth = 512kb )运行结果如下-------------------- --------------------The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Data1'.The CREATE DATABASE process is allocating 2.00 MB on disk 'mydb_Data2'.The CREATE DATABASE process is allocating 3.00 MB on disk 'mydb_Data3'.The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log1'.The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log2'.The CREATE DATABASE process is allocating 1.00 MB on disk 'mydb_Log3'.