详解SQL Server创建数据库

发布时间:2025-05-15 11:14:35 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:1、创建数据库介绍 在创建数据库之前,需要先确定数据库的名称、所有者、大小、存储该数据库的文件和文件组。 数据库所有者:创建数据库的用户。一般情况下,大多数产品对象由数据库所有者拥有。 2、创建数据库注意事项创建数据库需要拥有CREATE DATABASE、CREATE AN

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

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

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

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

(         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_name [ DEFAULT ]        <filespec> [ ,...n ] 

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

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

4、 创建数据库示例

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

create database TestDB

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

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

IF DB_ID (NTestDB) is not null  -- 判断数据库是否存在如果存在则先删除  DROP DATABASE TestDB   GO  CREATE DATABASE TestDB      ON      ( 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 master GO    IF DB_ID (NTestDB) is not null -- 判断数据库是否存在如果存在则先删除 DROP DATABASE TestDB  GO CREATE DATABASE TestDB     ON     PRIMARY         (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 master GO    IF DB_ID (NTestDB) is not null -- 判断数据库是否存在如果存在则先删除 DROP DATABASE TestDB  GO  CREATE DATABASE  TestDB     ON 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 ) ;

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!