sp_create_removable (Transact-SQL)
适用范围:SQL Server
创建可移动介质数据库。 创建三个或更多文件(一为系统目录表,一为事务日志,其余文件为数据表)并将数据库置于这些文件之中。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 建议改用 CREATE DATABASE 。
语法
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 DATABASE
、CREATE ANY DATABASE
或 ALTER 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;