SQLServer创建数据库详解

1、创建数据库介绍

在创建数据库之前,需要先确定数据库的名称、所有者、大小、存储该数据库的文件和文件组。

数据库所有者:创建数据库的用户。一般情况下,大多数产品对象由数据库所有者拥有。

2、创建数据库注意事项

  • 创建数据库需要拥有CREATE DATABASE、CREATE ANY DATABASE或ALTER ANY DATABASE权限。

  • 创建数据库的用户将成为该数据库的所有者。

  • 针对一个SQL Server实例,最多可以创建32767个数据库。

  • 数据库名称必须遵循为标识符指定的规则。

  • 在创建新数据库同时,model数据库中的所有用户定义对象都会复制到新创建的数据库中。可以向model数据库中添加任何通用的对象(如表、视图、存储过程和数据类型),然后在创建的数据库可以将这些对象复制到新创建的数据库当中。

3、创建数据库的语法格式

语法格式如下:

      CREATE DATABASE database_name[ ON[ PRIMARY ] [ <filespec> [ ,...n ][ , <filegroup> [ ,...n ] ][ LOG ON { <filespec> [ ,...n ] } ]][ COLLATE collation_name ]][;]

参数说明:

database_name:数据库名称。

ON:指定以显式定义方式指定存储数据库数据部分的数据文件。

PRIMARY:指定<filespec>列表中的主文件。在<filespec>项中的第一个文件将成为主文件。如果没有指定PRIMARY则默认第一个文件将成为数据库主文件。

LOG ON:指定存储数据库日志的日志文件。LOG ON后跟着以逗号分隔的用于定义日志文件的<filespec>项列表。不指定LOG ON,将自动创建一个日志文件,文件大小为该数据库的所有数据文件大小总和的1/4或512 KB,取两者之中的较大者。

COLLATE collation_name:指定数据库的默认排序规则。排序规则名称包括Windows排序规则、SQL排序规则名称。未指定排序规则,则将SQL Server实例的默认排序规则分配为数据库的排序规则。

<filespec>部分主要用于控制文件属性,语法格式如下:

(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 | GB | TB | % ] ]) [ ,...n ]

logical_file_name:指定文件的逻辑名称。logical_file_name必须在数据库中唯一,必须符合规定的标识符规则。

' os_file_name ':指定操作系统(物理)文件名称。执行创建数据库语句前,指定文件路径必须存在。如果指定了UNC(通用命名约定)路径,则无法设置SIZE、MAXSIZE和FILEGROWTH参数。

size:指定文件的初始大小。未指定主文件指定size,数据库引擎将使用model数据库中的主文件的大小。如果指定了辅助数据文件或日志文件,但未指定该文件的size,则数据库引擎将以1 MB作为该文件的大小。

可以使用千字节(KB)、兆字节(MB)、千兆字节(GB)或兆兆字节(TB)后缀,默认单位为MB。

max_size:指定文件可增大到的最大值,可以使用KB、MB、GB和TB后缀,默认单位为MB。

UNLIMITED:指定文件可以增长到磁盘空间已满。在SQL Server中,指定为不限制增长的日志文件的最大值为2 TB,而数据文件的最大值为16 TB。

growth_increment:指定每次需要新空间时为文件添加的空间量。growth_increment值不能超过MAXSIZE设置值。该值可以使用MB、KB、GB、TB或百分比(%)为单位指定。默认值为MB。growth_increment值为0时表明自动增长被关闭,不允许增加空间。

如果未指定FILEGROWTH,则数据文件的默认值为1 MB,日志文件的默认增长比例为10%,并且最小值为64 KB。

<filegroup>部分主要用于控制文件组属性,语法格式如下:

 

    FILEGROUP filegroup_name [ DEFAULT ]<filespec> [ ,...n ]

filegroup_name:必须在数据库中唯一,不能是系统提供的名称PRIMARY和PRIMARY_LOG。

DEFAULT:指定文件组为数据库中的默认文件组。

4、 创建数据库示例

  1. 最简单的创建数据库示例

create database TestDB

会根据SQLServer默认设置(文件存储位置、文件增加大小等)创建数据库。

2.指定数据和事务日志文件的数据库示例

 IF DB_ID (N'TestDB') is not null -- 判断数据库是否存在如果存在则先删除DROP DATABASE TestDB GOCREATE DATABASE TestDBON( NAME = TestDB,-- 逻辑数据库文件名FILENAME = 'D:\TestDB.mdf',SIZE = 10,MAXSIZE = 200,FILEGROWTH = 5 )LOG ON( NAME = TestDB_log,-- 逻辑数据库日志文件名FILENAME = 'D:\TestDB_log.ldf',SIZE = 5MB,MAXSIZE = 50MB,FILEGROWTH = 5MB ) ;

3.指定多个数据文件和事务日志文件示例

  USE masterGO   IF DB_ID (N'TestDB') is not null -- 判断数据库是否存在如果存在则先删除DROP DATABASE TestDB GOCREATE DATABASE TestDBONPRIMARY(NAME = TestDB1,FILENAME = 'd:\TestDB1.mdf',SIZE = 100MB,MAXSIZE = 200,FILEGROWTH = 20),( NAME = TestDB2,FILENAME = 'd:\TestDB2.ndf',SIZE = 100MB,MAXSIZE = 200,FILEGROWTH = 20)LOG ON(NAME = TestDB_log1,FILENAME = 'd:\TestDB_log1.ldf',SIZE = 30MB,MAXSIZE = 100,FILEGROWTH = 10),(NAME = TestDB_log2,FILENAME = 'd:\TestDB_log2.ldf',SIZE = 100MB,MAXSIZE = 500,FILEGROWTH = 50) ;

   

4.创建具有文件组的数据库下面的语句将创建数据库Sales,该数据库具有以下文件组。

  USE masterGO   IF DB_ID (N'TestDB') is not null -- 判断数据库是否存在如果存在则先删除DROP DATABASE TestDB GOCREATE DATABASE  TestDBON PRIMARY -- 数据库主文件( NAME = TestDB1,FILENAME = 'd:\TestDB1.mdf',SIZE = 20,MAXSIZE = 100,FILEGROWTH = 10% ),( NAME = TestDB2,FILENAME = 'd:\TestDB2.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5% ),FILEGROUP DBGroup1( NAME = TestDB3,FILENAME = 'd:\TestDB3.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 ),( NAME = TestDB4,FILENAME = 'd:\TestDB4.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 ),FILEGROUP DBGroup2( NAME = DB1_Group2,FILENAME = 'd:\DB1_Group2.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 ),( NAME = DB2_Group2,FILENAME = 'd:\DB2_Group2.ndf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )LOG ON( NAME = TestDB_log,FILENAME = 'd:\TestDB_log.ldf',SIZE = 50MB,MAXSIZE = 500MB,FILEGROWTH = 10MB ) ;

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac上IntelliJ IDEA设置类注释和方法注释带作者和日期

在方法上标注注释 1:idea左上角点击Preferences 选择Editor------Code Style----Live Templates 点击右边号 点击Template Group,在弹框中添加一个分组 2:击Template Group,在弹框中添加一个分组 3:选中新建的分组,点击右边号,选择Live Template 4:在…

集群服务器分布式iis_Nginx+IIS分布式部署和负载均衡

标签:1.IIS中部署2个网站创建2个网站,端口分别为9001、90022.下载Nginx可以进入Nginx官网进行下载,官网地址: http://nginx.org/,需要下载windows版的3.Nginx安装3.1下载解压到D盘根目录下,打开conf目录下的…

超级计算机的英语作文80字,英语作文_为什么这台超级计算机如此快? (有声) _沪江英语...

Why Is This Supercomputer So Superfast?Cray employees put the finishing touches on Titan at the Department of Energys Oak Ridge National Laboratory in Tennessee. The supercomputer may be the worlds fastest. Its designed to do 20 petaflops — or 20,000 tri…

HDU 1251 统计难题(Trie模版题)

统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 34909 Accepted Submission(s): 13109 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现)…

SQLServer数据库收缩相关知识笔记

1、为什么要进行数据库收缩?SQL Server 数据库采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了300MB,而实际上只占用了20MB空间,这样就会造成磁盘存储空间的浪费。可以通过数据库收缩技术对数…

libvirt vnc花屏_centos6.5下VNC花屏解决方法

问题描述1、FusionCompute平台搭建完成后,创建基于RHEL6.5 64bit版本的虚拟机,完成虚拟机初始安装后,VNC界面出现花屏,无法登入Redhat桌面系统2、在创建虚拟机时,系统安装向导配置了网络,在花屏界面下可以通…

enum操作--获取枚举里的最大值

一个应用系统,如果程序里没有任何enum的使用,我认为它的可读性是有待商榷的。 求枚举里的最大/最小枚举值, 其实是对Array进行操作: enum EnumTest{ddd 2,eee} var arr1 Enum.GetValues(typeof(EnumTest)); //返回值是一个Array…

吕梁离石学校计算机专业在哪里,山西吕梁计算机大专学校有哪些太重技校告诉您...

山西吕梁计算机大专学校有哪些太重技校告诉您。选择专业的***关键的因素是你自身的兴趣,其他只能参考,如果你能准确的知道自己的兴趣所在,未来的职业所选,那么只需要一招就可以吃遍天。相信我,一生为自己感兴趣的事情奋…

网络安全:六种常见的网络攻击手段

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

3种团队分组适应项目_分组团队竞赛活动方案

为营造新年春节期间良好的经营氛围,形成规范有效的服务流程,促进员工快乐积极向上工作,铸造峡市娱乐行业名牌,经KTV 管理人员研究制定以下分组评比竞赛方案:第一:分组办法。1、KTV主管杨海军、华磊、冯磊、…

Spring Security(18)——Jsp标签

目录 1.1 authorize 1.2 authentication 1.3 accesscontrollist Spring Security也有对Jsp标签的支持的标签库。其中一共定义了三个标签:authorize、authentication和accesscontrollist。其中authentication标签是用来代表当前Authentication对象的&…

e4a html文本,E4A 怎么将剪贴版中的文本 粘贴到窗口的光标处啊?求个代码

满意答案百幻蝶V木桃2017.05.20采纳率:49% 等级:8已帮助:1710人■如何打开剪贴板查看器 当您从某个程序剪切或复制信息时,该信息会被移动到剪贴板并保留在那里,直到您清除剪贴板或者您剪切或复制了另一片信息。“剪…

电脑技巧:七款U盘修复软件

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

cdrx8如何批量导出jpg_Coreldraw/CDR X8 存低版本打开问题 – 数码打印破图 – Coreldraw/CDR软件崩溃 – 渐变导位图角度变了...

Coreldraw/CDR X8 存低版本打开问题 – 数码打印破图 – Coreldraw/CDR软件崩溃 – 渐变导位图角度变了Coreldraw/CDR X8 存低版本打开问题各位大神,小弟最近安装了Coreldraw/CDR X8 ,在设计文件时,会遇到给文字设计套白边,问题来…

[deviceone开发]-do_SlideListView的简单示例

一、简介 利用提供的SlideListVIew实现那种cell可以滑动露出底部按钮的功能 主要组件:do_slidelistview 二、效果图 三、相关讨论 http://bbs.deviceone.net/forum.php?modviewthread&tid269 四、相关下载 https://github.com/do-project/code4do/tree/master/…

Git:Rebase和Merge之间的区别,看完这篇文章你就懂了!

社区中长期以来一直在争论我们应该使用Merge还是Rebase。有人会说Merge更好,因为它保留了最完整的工作历史。其他人则认为,Rebase变得更整洁,这使审阅者的生活更轻松,更高效。本文将解释合并和重新设置之间的区别是什么&#xff0…

计算机b级英语翻译,英语B级考试翻译必备常用短句

英语B级考试翻译必备常用短句1. Who would say like this?谁会这样说呢?2. What time shall we leave?我们什么时候出发呢?3. We are going to play golf this Sunday.我们这个星期天要去打高尔夫球。4. Do you want to go out or stay at home?你想出…

weblogic概览下的上下文根配置_Weblogic服务下获取上下文路劲问题

问题描述:如果一个项目用weblogic部署的服务,在web_inf文件夹下只有web.xml文件,没有配置weblogic.xml文件时,这是用类.class.getClassLoader().getResource("").getPath() 该方法获取到的绝对路劲是如下:/…