在SQL Server中创建数据库主要有那种方式


Posted in 面试题 onSeptember 10, 2013
在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

[ [ ,...n ] ]

[ , [ ,...n ] ]

]

[

[ LOG ON { [ ,...n ] } ]

[ 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

[ ,...n ]

::=

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,指定显式定义用来存储数据库日志的磁盘文件(日志文件)。该关键字后跟以逗号分隔的 项列表, 项用以定义日志文件。如果没有指定 LOG ON,将自动创建一个日志文件,该文件使用系统生成的名称,大小为数据库中所有数据文件总大小的 25%。

l FOR LOAD,支持该子句是为了与早期版本的 SQL Server 兼容。数据库在打开 dbo use only 数据库选项的情况下创建,并且将其状态设置为正在装载。

l FOR ATTACH,指定从现有的一组操作系统文件中附加数据库。必须有指定第一个主文件的 条目。至于其它 条目,只需要与第一次创建数据库或上一次附加数据库时路径不同的文件的那些条目。必须为这些文件指定 条目。附加的数据库必须使用与 SQL Server 相同的代码页和排序次序创建。应使用 sp_attach_db 系统存储过程,而不要直接使用 CREATE DATABASE FOR ATTACH。只有必须指定 16 个以上的 项目时,才需要使用 CREATE DATABASE FOR ATTACH。 如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。

l collation_name,指定数据库的默认排序规则。排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。如果没有指定排序规则,则将 SQL Server 实例的默认排序规则指派为数据库的排序规则。

l PRIMARY,指定关联的 列表定义主文件。主文件组包含所有数据库系统表。还包含所有未指派给用户文件组的对象。主文件组的第一个 条目成为主文件,该文件包含数据库的逻辑起点及其系统表。一个数据库只能有一个主文件。如果没有指定 PRIMARY,那么 CREATE DATABASE 语句中列出的第一个文件将成为主文件。

l NAME,为由 定义的文件指定逻辑名称。如果指定了 FOR ATTACH,则不需要指定 NAME 参数。

l logical_file_name,用来在创建数据库后执行的 Transact-SQL 语句中引用文件的名称。logical_file_name 在数据库中必须唯一,并且符合标识符的规则。该名称可以是字符或 Unicode 常量,也可以是常规标识符或定界标识符。

l FILENAME,为 定义的文件指定操作系统文件名。

l os_file_name,操作系统创建 定义的物理文件时使用的路径名和文件名。os_file_name 中的路径必须指定 SQL Server 实例上的目录。os_file_name 不能指定压缩文件系统中的目录。如果文件在原始分区上创建,则 os_file_name 必须只指定现有原始分区的驱动器字母。每个原始分区上只能创建一个文件。原始分区上的文件不会自动增长;因此,os_file_name 指定原始分区时,不需要指定 MAXSIZE 和 FILEGROWTH 参数。

l SIZE,指定 中定义的文件的大小。如果主文件的 中没有提供 SIZE 参数,那么 SQL Server 将使用 model 数据库中的主文件大小。如果次要文件或日志文件的 中没有指定 SIZE 参数,则 SQL Server 将使文件大小为 1 MB。

l Size, 中定义的文件的初始大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。size 的最小值为 512 KB。如果没有指定 size,则默认值为 1 MB。为主文件指定的大小至少应与 model 数据库的主文件大小相同。

l MAXSIZE,指定 中定义的文件可以增长到的最大大小。

l max_size, 中定义的文件可以增长到的最大大小。可以使用千字节 (KB)、兆字节 (MB)、千兆字节 (GB) 或兆兆字节 (TB) 后缀。默认值为 MB。指定一个整数,不要包含小数位。如果没有指定 max_size,那么文件将增长到磁盘变满为止。

l UNLIMITED,指定 中定义的文件将增长到磁盘变满为止。

l FILEGROWTH,指定 中定义的文件的增长增量。文件的 FILEGROWTH 设置不能超过 MAXSIZE 设置。

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 ,当授予FOR ATTACH子句的时候,才能设置Service Broker选项。

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,定义创建的数据库为一个源数据库的数据库快照。

Tags in this post...

面试题 相关文章推荐
PHP面试题集
Dec 18 面试题
六道php面试题附答案
Jun 05 面试题
C++面试题:关于链表和指针
Jun 05 面试题
编写strcpy函数
Jun 24 面试题
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
Feb 09 面试题
必须要使用游标的SQL语句有那些
May 07 面试题
什么是事务?事务有哪些性质?
Mar 11 面试题
什么是聚集索引和非聚集索引
Jan 17 面试题
网络体系结构及协议的定义
Mar 13 面试题
EJB的几种类型
Aug 15 面试题
解释下面关于J2EE的名词
Nov 15 面试题
一套Delphi的笔试题二
May 11 面试题
介绍一下SQL Server的全文索引
Aug 15 #面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
Feb 25 #面试题
数据库的约束含义
Sep 09 #面试题
ddl,dml和dcl的含义
May 08 #面试题
索引覆盖(Index Covering)查询含义
Feb 18 #面试题
为什么group by 和order by会使查询变慢
May 16 #面试题
写出SQL四条最基本的数据操作语句(DML)
Dec 12 #面试题
You might like
PHP聊天室技术
2006/10/09 PHP
php相当简单的分页类
2008/10/02 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
python使用分治法实现求解最大值的方法
2015/05/12 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
质检部经理岗位职责
2014/02/19 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
学校端午节活动总结
2015/02/11 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2019年预备党员的思想汇报:加深对党的认知
2019/09/25 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang