sp_create_removable (Transact-SQL)

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

重要说明重要提示

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

主题链接图标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'
    为了在可移动介质上使用而创建的数据库的名称。dbname 的数据类型为 sysname

  • [ @syslogical= ] 'syslogical'
    包含系统目录表的文件的逻辑名称。syslogical 的数据类型为 sysname

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

  • [ @syssize= ] syssize
    存放系统目录表的文件的大小 (MB)。syssize 的数据类型为 int。syssize 的最小值为 1。

  • [ @loglogical= ] 'loglogical'
    包含事务日志的文件的逻辑名称。loglogical 的数据类型为 sysname

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

  • [ @logsize= ] logsize
    包含事务日志的文件的大小 (MB)。logsize 的数据类型为 int。logsize 的最小值为 1。

  • [ @datalogical1= ] 'datalogical'
    包含数据表的文件的逻辑名称。datalogical 的数据类型为 sysname

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

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

  • [ @datasize1= ] 'datasize'
    包含数据表的文件的大小 (MB)。datasize 的数据类型为 int。datasize 的最小值为 1。

返回代码值

0(成功)或 1(失败)

结果集

注释

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

权限

要求具有 CREATE DATABASE、CREATE ANY DATABASE 或 ALTER ANY DATABASE 的权限。

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

对数据文件和日志文件的权限

在 SQL Server 2005 中,将对每个数据库的数据文件和日志文件设置特定的权限。每当对数据库执行下列操作时,便会设置下列权限:

创建

修改以添加新文件

附加

备份

分离

还原

如果这些文件位于具有打开权限的目录中,那么以上权限可以防止文件被意外篡改。有关详细信息,请参阅保护数据和日志文件的安全

示例

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

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