在SQL Server中创建数据库主要有两种方法,第一种是在SQL Server Management Studio中使用向导创建数据库;第二种是执行Transact-SQL语句创建数据库。下面我们分别进行介绍。
(1)使用SQL Server Management Studio创建数据库
在SQL Server Management Studio中,可以使用向导创建数据库,步骤如下:
1. 打开SQL Server Management Studio。
2. 右击“数据库”对象,在弹出式菜单中选择“新建数据库”菜单项,打开“新建数据库”对话框
3. 在“常规”页,可以定义数据库的名称为EAMS、数据库文件、数据库的所有者、排序规则、恢复模型,以及是否使用全文索引。
4. 在“选项”页,可以定义数据库的一些选项,包括自动选项、游标选项、混杂选项、恢复选项、行级版本选项和状态选项
5. 在“文件组”页,显示文件组和文件的统计信息,同时还可以设置是否采用默认值
6. 在“扩展属性”页,可以定义数据库的一些扩展属性,如图5所示。
7. 当完成各个选项的定义之后,单击【OK】按钮,SQL Server数据库引擎会创建所定义的数据库。
(2)使用Transact-SQL创建数据库
Transact-SQL提供了创建数据库的语句:CREATE DATABASE,其语法格式如下:
CREATE DATABASE database_name
[ ON
[
[ ,
]
[
[ LOG ON {
[ COLLATE collation_name ]
[ FOR { ATTACH [ WITH
| ATTACH_REBUILD_LOG } ]
[ WITH
]
[;]
[ PRIMARY ]
(
[ NAME = logical_file_name , ]
FILENAME = ‘os_file_name’
[ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | % ] ]
) [ ,...n ]
FILEGROUP filegroup_name
DB_CHAINING { ON | OFF }
| TRUSTWORTHY { ON | OFF }
ENABLE_BROKER
| NEW_BROKER
| ERROR_BROKER_CONVERSATIONS
Create a Database Snapshot
CREATE DATABASE database_snapshot_name
ON
(
NAME = logical_file_name,
FILENAME = ‘os_file_name’
) [ ,...n ]
AS SNAPSHOT OF source_database_name
[;]
参数说明如下:
l database_name,新数据库的名称。数据库名称在服务器中必须唯一,并且符合标识符的规则。database_name 最多可以包含 128 个字符,除非没有为日志指定逻辑名。如果没有指定日志文件的逻辑名,则SQL Server会通过向 database_name 追加后缀来生成逻辑名。该操作要求 database_name 在 123 个字符之内,以便生成的日志文件逻辑名少于 128 个字符。
l ON,指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。该关键字后跟以逗号分隔的
l N,占位符,表示可以为新数据库指定多个文件。
l LOG ON,指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的
l FOR LOAD,支持该子句是为了与早期版本的 SQL Server 兼容。数据库在打开 dbo use only 数据库选项的情况下创建,并且将其状态设置为正在装载。
l FOR ATTACH,指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的
l collation_name,指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。
l PRIMARY,指定关联的
l NAME,为由
l logical_file_name,用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name 在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。
l FILENAME,为
l os_file_name,操作系统创建
l SIZE,指定
l Size,
l MAXSIZE,指定
l max_size,
l UNLIMITED,指定
l FILEGROWTH,指定
l growth_increment,每次需要新的空间时为文件添加的空间大小。指定一个整数,不要包含小数位。0 值表示不增长。该值可以 MB、KB、GB、TB 或百分比 (%) 为单位指定。如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。如果指定 %,则增量大小为发生增长时文件大小的指定百分比。如果没有指定 FILEGROWTH,则默认值为 10%,最小值为 64 KB。指定的大小舍入为最接近的 64 KB 的倍数。
l
l FILEGROUP,定义文件组的逻辑名。
l filegroup_name,表示在创建数据库之后,在Transact-SQL语句中引用文件组的名称。filegroup_name在数据库中必须唯一,不能是系统提供的名称,如PRIMARY和PRIMARY_LOG。名称必须同标识符的规则保持一致。
l default,定义文件组为特定文件组类型的默认数据库文件组。
l DB_CHAINING { ON | OFF },当设置为ON的时候,数据库可以为交叉数据库所有者关系链中的源或者目标。当设置为OFF的时候,数据库不能参与交叉数据库所有者关系链,对于用户数据库,可以修改这个选项,但是不能修改系统数据库的该选项。默认值为OFF。
l TRUSTWORTHY { ON | OFF },当设置为ON的时候,数据库模块(如视图、用户自定义函数或者存储过程)允许访问数据库外的资源。当设置为OFF的时候,数据库模块不能访问数据库之外的资源。默认值为OFF。
l
l ENABLE_BROKER,定义数据库是否启用Service Broker。
l NEW_BROKER,在sys数据库中和恢复数据库中创建新的service_broker_guid。
l ERROR_BROKER_CONVERSATIONS,终止所有发生错误的会话。
l database_snapshot_name,定义新数据库的快照名。
l ON (NAME =logical_file_name, FILENAME =’os_file_name’) [ ,... n ] ,对于创建一个数据库快照,在源数据库中定义文件列表。
l AS SNAPSHOT OF source_database_name,定义创建的数据库为一个源数据库的数据库快照。