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