sp_create_removable (Transact-SQL)

适用于:yes (所有受支持的版本的 SQL Server)

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

重要

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

Topic link iconTransact-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。最小 logsize 为1。

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

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

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

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