如何使用sql语句创建数据库
1个回答
展开全部
CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
[ PRIMARY ] <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]
<option> ::=
{
FILESTREAM ( <filestream_option> [,...n ] )
| DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
| DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON}
| TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
| DB_CHAINING { OFF | ON }
| TRUSTWORTHY { OFF | ON }
}
<filestream_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
| DIRECTORY_NAME = 'directory_name'
}
To attach a database
CREATE DATABASE database_name
ON <filespec> [ ,...n ]
FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
| ATTACH_REBUILD_LOG }
[;]
<filespec> ::=
{
(
NAME = logical_file_name ,
FILENAME = { 'os_file_name' | 'filestream_path' }
[ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}
<filegroup> ::=
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
<filespec> [ ,...n ]
}
<attach_database_option> ::=
{
<service_broker_option>
| RESTRICTED_USER
| FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}
<service_broker_option> ::=
{
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
[;]
database_name
新数据库的名称。
数据库名称在 SQL Server 的实例中必须唯一,并且必须符合 标识符规则。
除非没有为日志文件指定逻辑名称,否则 database_name 最多可以包含 128 个字符。
如果未指定逻辑日志文件名称,则 SQL Server 将通过向 database_name 追加后缀来为日志生成 logical_file_name 和 os_file_name。
这会将 database_name 限制为 123
个字符,从而使生成的逻辑文件名称不超过 128 个字符。
如果未指定数据文件的名称,则 SQL Server 使用 database_name 作为 logical_file_name 和 os_file_name。
默认路径从注册表中获得。
可以使用 Management Studio 中的“服务器属性”(“数据库设置”页)更改默认路径。
更改默认路径要求重新启动 SQL Server。
CONTAINMENT
指定数据库的包含状态。
NONE = 非包含数据库。
PARTIAL = 部分包含的数据库。
ON
指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。
当后面是以逗号分隔的、用以定义主文件组的数据文件的 <filespec> 项列表时,需要使用
ON。
主文件组的文件列表可后跟以逗号分隔的、用以定义用户文件组及其文件的 <filegroup>
项列表(可选)。
PRIMARY
指定关联的 <filespec> 列表定义主文件。
在主文件组的 <filespec> 项中指定的第一个文件将成为主文件。
一个数据库只能有一个主文件。
有关详细信息,请参阅 数据库文件和文件组。
如果没有指定 PRIMARY,那么 CREATE DATABASE
语句中列出的第一个文件将成为主文件。
LOG ON
指定显式定义用来存储数据库日志的磁盘文件(日志文件)。
LOG ON 后跟以逗号分隔的用以定义日志文件的 <filespec> 项列表。
如果没有指定 LOG ON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的 25% 或 512
KB,取两者之中的较大者。
此文件放置于默认的日志文件位置。
有关此位置的信息,请参阅 查看或更改数据文件和日志文件的默认位置 (SQL Server Management Studio)。
不能对数据库快照指定 LOG ON。
COLLATE collation_name
指定数据库的默认排序规则。
排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。
如果没有指定排序规则,则将 SQL Server 实例的默认排序规则分配为数据库的排序规则。
不能对数据库快照指定排序规则名称。
不能使用 FOR ATTACH 或 FOR ATTACH_REBUILD_LOG
子句指定排序规则名称。
有关如何更改附加数据库的排序规则的信息,请访问此 Microsoft 网站。
有关 Windows 和 SQL 排序规则名称的详细信息,请参阅 COLLATE (Transact-SQL)。
注意
包含数据库的排序方式不同于非包含数据库。
有关详细信息,请参阅 包含数据库的排序规则。
WITH <选项>
仅在将 CONTAINMENT 设置为 PARTIAL 之后,才允许使用以下选项。
如果将 CONTAINMENT 设置为 NONE,将发生错误。
<filestream_options>
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
指定对数据库的非事务性 FILESTREAM 访问的级别。
USE master;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO
USE master;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO
B.创建指定数据和事务日志文件的数据库
下面的示例将创建数据库 Sales。
因为没有使用关键字 PRIMARY,第一个文件 ( Sales_
dat) 将成为主文件。
因为在 Sales_ dat 文件的 SIZE 参数中没有指定 MB 或 KB,将使用 MB 并按 MB 分配。
Sales_ log 文件以 MB 为单位进行分配,因为 SIZE 参数中显式声明了
MB 后缀。
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
C.通过指定多个数据和事务日志文件创建数据库
以下示例创建数据库 Archive,该数据库具有三个 100-MB 数据文件和两个 100-MB 事务日志文件。
主文件是列表中的第一个文件,并使用 PRIMARY
关键字显式指定。
事务日志文件在 LOG ON 关键字后指定。
请注意用于 FILENAME 选项中各文件的扩展名: .mdf 用于主数据文件, .ndf 用于辅助数据文件, .ldf 用于事务日志文件。
此示例将数据库放置于 D: 驱动器上,而非 master 数据库中。
USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
(NAME = Arch1,
FILENAME = 'D:\SalesData\archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
(NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20) ;
GO
USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
(NAME = Arch1,
FILENAME = 'D:\SalesData\archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
(NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20) ;
GO
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
[ PRIMARY ] <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]
<option> ::=
{
FILESTREAM ( <filestream_option> [,...n ] )
| DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
| DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON}
| TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
| DB_CHAINING { OFF | ON }
| TRUSTWORTHY { OFF | ON }
}
<filestream_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
| DIRECTORY_NAME = 'directory_name'
}
To attach a database
CREATE DATABASE database_name
ON <filespec> [ ,...n ]
FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
| ATTACH_REBUILD_LOG }
[;]
<filespec> ::=
{
(
NAME = logical_file_name ,
FILENAME = { 'os_file_name' | 'filestream_path' }
[ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}
<filegroup> ::=
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
<filespec> [ ,...n ]
}
<attach_database_option> ::=
{
<service_broker_option>
| RESTRICTED_USER
| FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}
<service_broker_option> ::=
{
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
[;]
database_name
新数据库的名称。
数据库名称在 SQL Server 的实例中必须唯一,并且必须符合 标识符规则。
除非没有为日志文件指定逻辑名称,否则 database_name 最多可以包含 128 个字符。
如果未指定逻辑日志文件名称,则 SQL Server 将通过向 database_name 追加后缀来为日志生成 logical_file_name 和 os_file_name。
这会将 database_name 限制为 123
个字符,从而使生成的逻辑文件名称不超过 128 个字符。
如果未指定数据文件的名称,则 SQL Server 使用 database_name 作为 logical_file_name 和 os_file_name。
默认路径从注册表中获得。
可以使用 Management Studio 中的“服务器属性”(“数据库设置”页)更改默认路径。
更改默认路径要求重新启动 SQL Server。
CONTAINMENT
指定数据库的包含状态。
NONE = 非包含数据库。
PARTIAL = 部分包含的数据库。
ON
指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。
当后面是以逗号分隔的、用以定义主文件组的数据文件的 <filespec> 项列表时,需要使用
ON。
主文件组的文件列表可后跟以逗号分隔的、用以定义用户文件组及其文件的 <filegroup>
项列表(可选)。
PRIMARY
指定关联的 <filespec> 列表定义主文件。
在主文件组的 <filespec> 项中指定的第一个文件将成为主文件。
一个数据库只能有一个主文件。
有关详细信息,请参阅 数据库文件和文件组。
如果没有指定 PRIMARY,那么 CREATE DATABASE
语句中列出的第一个文件将成为主文件。
LOG ON
指定显式定义用来存储数据库日志的磁盘文件(日志文件)。
LOG ON 后跟以逗号分隔的用以定义日志文件的 <filespec> 项列表。
如果没有指定 LOG ON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的 25% 或 512
KB,取两者之中的较大者。
此文件放置于默认的日志文件位置。
有关此位置的信息,请参阅 查看或更改数据文件和日志文件的默认位置 (SQL Server Management Studio)。
不能对数据库快照指定 LOG ON。
COLLATE collation_name
指定数据库的默认排序规则。
排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。
如果没有指定排序规则,则将 SQL Server 实例的默认排序规则分配为数据库的排序规则。
不能对数据库快照指定排序规则名称。
不能使用 FOR ATTACH 或 FOR ATTACH_REBUILD_LOG
子句指定排序规则名称。
有关如何更改附加数据库的排序规则的信息,请访问此 Microsoft 网站。
有关 Windows 和 SQL 排序规则名称的详细信息,请参阅 COLLATE (Transact-SQL)。
注意
包含数据库的排序方式不同于非包含数据库。
有关详细信息,请参阅 包含数据库的排序规则。
WITH <选项>
仅在将 CONTAINMENT 设置为 PARTIAL 之后,才允许使用以下选项。
如果将 CONTAINMENT 设置为 NONE,将发生错误。
<filestream_options>
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
指定对数据库的非事务性 FILESTREAM 访问的级别。
USE master;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO
USE master;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO
B.创建指定数据和事务日志文件的数据库
下面的示例将创建数据库 Sales。
因为没有使用关键字 PRIMARY,第一个文件 ( Sales_
dat) 将成为主文件。
因为在 Sales_ dat 文件的 SIZE 参数中没有指定 MB 或 KB,将使用 MB 并按 MB 分配。
Sales_ log 文件以 MB 为单位进行分配,因为 SIZE 参数中显式声明了
MB 后缀。
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB ) ;
GO
C.通过指定多个数据和事务日志文件创建数据库
以下示例创建数据库 Archive,该数据库具有三个 100-MB 数据文件和两个 100-MB 事务日志文件。
主文件是列表中的第一个文件,并使用 PRIMARY
关键字显式指定。
事务日志文件在 LOG ON 关键字后指定。
请注意用于 FILENAME 选项中各文件的扩展名: .mdf 用于主数据文件, .ndf 用于辅助数据文件, .ldf 用于事务日志文件。
此示例将数据库放置于 D: 驱动器上,而非 master 数据库中。
USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
(NAME = Arch1,
FILENAME = 'D:\SalesData\archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
(NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20) ;
GO
USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
(NAME = Arch1,
FILENAME = 'D:\SalesData\archdat1.mdf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch2,
FILENAME = 'D:\SalesData\archdat2.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
( NAME = Arch3,
FILENAME = 'D:\SalesData\archdat3.ndf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20)
LOG ON
(NAME = Archlog1,
FILENAME = 'D:\SalesData\archlog1.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20),
(NAME = Archlog2,
FILENAME = 'D:\SalesData\archlog2.ldf',
SIZE = 100MB,
MAXSIZE = 200,
FILEGROWTH = 20) ;
GO
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询