创建数据库的例子

1.数据库文件名定义:
文件类型 文件扩展名
主要数据文件 .mdf
次要数据文件 .ndf
事务日志文件 .ldf

 

2.如果存在则删除

USE master
GO
IF EXISTS(SELECT * FROM sysdatabases WHERE NAME='study')
DROP DATABASE study
GO

 

3.创建数据库的例子:
A. 创建指定数据文件和事务日志文件的数据库
下面的示例创建名为 Sales 的数据库。因为没有使用关键字 PRIMARY,第一个文件 (Sales_dat) 成为主文件。因为 Sales_dat 文件的 SIZE 参数没有指定 MB 或 KB,因此默认为 MB,以兆字节为单位进行分配。Sales_log 文件以兆字节为单位进行分配,因为 SIZE 参数中显式声明了 MB 后缀。

USE master
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/saledat.mdf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/salelog.ldf',
   SIZE = 5MB,
   MAXSIZE = 25MB,
   FILEGROWTH = 5MB )
GO

B. 指定多个数据文件和事务日志文件创建数据库
下面的示例使用三个 100 MB 的数据文件和两个 100 MB 的事务日志文件创建了名为 Archive 的数据库。主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。

USE master
GO
CREATE DATABASE Archive
ON
PRIMARY ( NAME = Arch1,
      FILENAME = 'c:/program files/microsoft sql server/mssql/data/archdat1.mdf',
      SIZE = 100MB,
      MAXSIZE = 200,
      FILEGROWTH = 20),
( NAME = Arch2,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/archdat2.ndf',
   SIZE = 100MB,
   MAXSIZE = 200,
   FILEGROWTH = 20),
( NAME = Arch3,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/archdat3.ndf',
   SIZE = 100MB,
   MAXSIZE = 200,
   FILEGROWTH = 20)
LOG ON
( NAME = Archlog1,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/archlog1.ldf',
   SIZE = 100MB,
   MAXSIZE = 200,
   FILEGROWTH = 20),
( NAME = Archlog2,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/archlog2.ldf',
   SIZE = 100MB,
   MAXSIZE = 200,
   FILEGROWTH = 20)
GO

C. 创建简单的数据库
本例创建名为 Products 的数据库,并指定单个文件。指定的文件成为主文件,并会自动创建一个 1 MB 的事务日志文件。因为主文件的 SIZE 参数中没有指定 MB 或 KB,所以主文件将以兆字节为单位进行分配。因为没有为事务日志文件指定 <filespec>,所以事务日志文件没有 MAXSIZE,可以增长到填满所有可用的磁盘空间为止。

USE master
GO
CREATE DATABASE Products
ON
( NAME = prods_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/prods.mdf',
   SIZE = 4,
   MAXSIZE = 10,
   FILEGROWTH = 1 )
GO

D. 不指定文件创建数据库
下面的示例创建名为 mytest 的数据库,并创建相应的主文件和事务日志文件。因为该语句没有 <filespec> 项,所以主数据库文件的大小为 model 数据库主文件的大小。事务日志文件的大小为 model 数据库事务日志文件的大小。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。

CREATE DATABASE mytest

E. 不指定 SIZE 创建数据库
下面的示例创建名为 products2 的数据库。文件 prods2_dat 将成为主文件,大小等于 model 数据库中主文件的大小。事务日志文件会自动创建,其大小为主文件大小的 25% 或 512 KB 中的较大值。因为没有指定 MAXSIZE,文件可以增长到填满所有可用的磁盘空间为止。

USE master
GO
CREATE DATABASE Products2
ON
( NAME = prods2_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/prods2.mdf' )
GO

F. 使用文件组创建数据库
下面的示例使用三个文件组创建名为 sales 的数据库:

主文件组包含文件 Spri1_dat 和 Spri2_dat。指定这些文件的 FILEGROWTH 增量为 15%。


名为 SalesGroup1 的文件组包含文件 SGrp1Fi1 和 SGrp1Fi2。


名为 SalesGroup2 的文件组包含文件 SGrp2Fi1 和 SGrp2Fi2。
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/SPri1dat.mdf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 15% ),
( NAME = SPri2_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/SPri2dt.ndf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/SG1Fi1dt.ndf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/SG1Fi2dt.ndf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/SG2Fi1dt.ndf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/SG2Fi2dt.ndf',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
   FILENAME = 'c:/program files/microsoft sql server/mssql/data/salelog.ldf',
   SIZE = 5MB,
   MAXSIZE = 25MB,
   FILEGROWTH = 5MB )
GO

G. 附加数据库
示例 B 创建一个包含下列物理文件的名为 Archive 的数据库:

c:/program files/microsoft sql server/mssql/data/archdat1.mdf
c:/program files/microsoft sql server/mssql/data/archdat2.ndf
c:/program files/microsoft sql server/mssql/data/archdat3.ndf
c:/program files/microsoft sql server/mssql/data/archlog1.ldf
c:/program files/microsoft sql server/mssql/data/archlog2.ldf

可以使用 sp_detach_db 存储过程分离该数据库,然后使用带有 FOR ATTACH 子句的 CREATE DATABASE 重新附加。

sp_detach_db Archive
GO
CREATE DATABASE Archive
ON PRIMARY (FILENAME = 'c:/program files/microsoft sql server/mssql/data/archdat1.mdf')
FOR ATTACH
GO

H. 使用原始分区
下面的示例使用原始分区创建名为 Employees 的数据库。执行语句时,原始分区必须存在,并且每个原始分区只能创建一个文件。

USE master
GO
CREATE DATABASE Employees
ON
( NAME = Empl_dat,
   FILENAME = 'f:',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
   FILENAME = 'g:',
   SIZE = 5MB,
   MAXSIZE = 25MB,
   FILEGROWTH = 5MB )
GO

I. 使用已装入的驱动器
下面的示例使用指向原始分区的已装入驱动器创建名为 Employees 的数据库。此功能只在 Microsoft® Windows® 2000 Server 中才可用。.执行语句时必须已经存在已装入的驱动器和原始分区,并且每个原始分区上只能有一个文件。当在已装入的驱动器上创建数据库文件时,必须用尾随反斜线结束驱动器路径。

USE master
GO
CREATE DATABASE Employees
ON
( NAME = Empl_dat,
   FILENAME = 'd:/sample data dir/',
   SIZE = 10,
   MAXSIZE = 50,
   FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
   FILENAME = 'd:/sample log dir/',
   SIZE = 5MB,
   MAXSIZE = 25MB,
   FILEGROWTH = 5MB )
GO

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值