在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...

面试题 相关文章推荐
Java面试题及答案
Sep 08 面试题
Java中实现多态的机制
Aug 09 面试题
新电JAVA笔试题目
Aug 31 面试题
文件中有一组整数,要求排序后输出到另一个文件中
Jan 04 面试题
数据库基础的一些面试题
Feb 25 面试题
西部世纪面试题
Dec 05 面试题
常用UNIX 命令(Linux的常用命令)
Jul 10 面试题
一套软件开发工程师笔试题
May 18 面试题
线程问题:wait()方法是定义在哪个类里面
Jul 07 面试题
日期和时间问题
Jan 04 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
Jun 22 面试题
介绍一下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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
基于Jquery实现键盘按键监听
2014/05/11 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
js随机生成一个验证码
2017/06/01 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
python远程登录代码
2008/04/29 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
python中温度单位转换的实例方法
2020/12/27 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
化工专业大学生职业生涯规划书
2014/01/14 职场文书
教导处工作制度
2014/01/18 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
社区庆八一活动方案
2014/02/02 职场文书
Python 绘制多因子柱状图
2022/05/11 Python
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang