sp_create_removable (Transact-SQL)

适用于:SQL Server

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

重要

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

Transact-SQL 语法约定

语法

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

参数

[ @dbname = ] 'dbname' 要创建的用于可移动媒体的数据库的名称。 dbnamesysname

[ @syslogical = ] 'syslogical' 包含系统目录表的文件的逻辑名称。 syslogicalsysname

[ @sysphysical = ] 'sysphysical' 物理名称。 其中包含存放系统目录表的文件的完全限定路径。 sysphysicalnvarchar(260)。

[ @syssize = ] syssize 保存系统目录表的文件的大小(以 MB 为单位)。 syssizeint。最小 syssize 为 1。

[ @loglogical = ] 'loglogical' 包含事务日志的文件的逻辑名称。 loglogicalsysname

[ @logphysical = ] 'logphysical' 物理名称。 其中包含存放事务日志的文件的完全限定路径。 logphysicalnvarchar(260)。

[ @logsize = ] logsize 包含事务日志的文件的大小(以 MB 为单位)。 logsizeint。最小 日志化 为 1。

[ @datalogical1 = ] 'datalogical' 包含数据表的文件的逻辑名称。 datalogicalsysname

必须有 1 到 16 个数据文件。 通常,如果预计数据库很大,必须分布在多个磁盘上,则创建多个数据文件。

[ @dataphysical1 = ] 'dataphysical' 物理名称。 其中包括包含数据表的文件的完全限定路径。 dataphysicalnvarchar(260)。

[ @datasize1 = ] 'datasize' 包含数据表的文件的大小(以 MB 为单位)。 datasizeint。最小 数据大小 为 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;  

另请参阅

数据库分离和附加 (SQL Server)
sp_certify_removable (Transact-SQL)
ALTER DATABASE (Transact-SQL)
sp_dbremove (Transact-SQL)
sp_detach_db (Transact-SQL)
sp_helpfile (Transact-SQL)
sp_helpfilegroup (Transact-SQL)
系统存储过程 (Transact-SQL)