sp_create_removable (Transact-SQL)

适用范围:SQL Server

创建可移动介质数据库。 创建三个或更多文件(一为系统目录表,一为事务日志,其余文件为数据表)并将数据库置于这些文件之中。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 建议改用 CREATE DATABASE

Transact-SQL 语法约定

语法

sp_create_removable
    [ [ @dbname = ] N'dbname' ]
    [ , [ @syslogical = ] N'syslogical' ]
    [ , [ @sysphysical = ] N'sysphysical' ]
    [ , [ @syssize = ] syssize ]
    [ , [ @loglogical = ] N'loglogical' ]
    [ , [ @logphysical = ] N'logphysical' ]
    [ , [ @logsize = ] logsize ]
    [ , [ @datalogical1 = ] N'datalogical1' ]
    [ , [ @dataphysical1 = ] N'dataphysical1' ]
    [ , [ @datasize1 = ] datasize1 ]
    [ , ... ]
    [ , [ @datalogical16 = ] N'datalogical16' ]
    [ , [ @dataphysical16 = ] N'dataphysical16' ]
    [ , [ @datasize16 = ] datasize16 ]
[ ; ]

参数

[ @dbname = ] N'dbname'

要创建的用于可移动媒体的数据库的名称。 @dbname为 sysname,默认值为 NULL.

[ @syslogical = ] N'syslogical'

包含系统目录表的文件的逻辑名称。 @syslogical为 sysname,默认值为 NULL.

[ @sysphysical = ] N'sysphysical'

物理名称。 @sysphysical为 nvarchar(260),默认值为 NULL. 此值包括保存系统目录表的文件的完全限定路径。

[ @syssize = ] syssize

保存系统目录表的文件的大小(以 MB 为单位)。 @syssize为 int,默认值为 NULL.

[ @loglogical = ] N'loglogical'

包含事务日志的文件的逻辑名称。 @loglogical为 sysname,默认值为 NULL.

[ @logphysical = ] N'logphysical'

物理名称。 @logphysical为 nvarchar(260),默认值为 NULL. 此值包括包含事务日志的文件的完全限定路径。

[ @logsize = ] logsize

包含事务日志的文件的大小(以 MB 为单位)。 @logsize为 int,最小值为 1.

[ @datalogical1 = ] N'datalogical1'

包含数据表的文件的逻辑名称。 @datalogical1为 sysname,默认值为 NULL.

必须介于数据文件之间和16数据文件之间1。 通常,如果数据库预期较大,并且必须分布在多个磁盘上,则会创建多个数据文件。

[ @dataphysical1 = ] N'dataphysical1'

物理名称。 @dataphysical1为 nvarchar(260),默认值为 NULL. 此值包括包含数据表的文件的完全限定路径。

[ @datasize1 = ] datasize1

包含数据表的文件的大小(以 MB 为单位)。 @datasize1为 int,最小值为 1.

返回代码值

0(成功)或 1(失败)。

结果集

无。

注解

如果要在可移动介质(如光盘)上制作数据库的副本,并将该数据库分发给其他用户,则可使用此存储过程。

权限

需要 CREATE DATABASECREATE ANY DATABASEALTER ANY DATABASE 权限。

为了控制对运行 SQL Server 实例的计算机上的磁盘使用,通常只有少数登录帐户才有创建数据库的权限。

对数据和日志文件的权限

在对数据库执行某些操作时,将对其数据和日志文件设置相应的权限。 如果文件驻留在打开权限的目录中,则这些权限会阻止文件被意外篡改。

对数据库执行的操作 对文件设置的权限
修改为添加新文件 已创建
已备份对象 已附加
已还原 已分离

注意

SQL Server 不设置数据和日志文件权限。

示例

以下示例创建作为可移动数据库的数据库 inventory

EXEC sp_create_removable 'inventory',
    'invsys',
    'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\invsys.mdf',
    2,
    'invlog',
    'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\invlog.ldf',
    4,
    'invdata',
    'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\invdata.ndf',
    10;