sp_create_removable (Transact-SQL)
适用于:SQL Server
创建可移动介质数据库。 创建三个或更多文件(一为系统目录表,一为事务日志,其余文件为数据表)并将数据库置于这些文件之中。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 建议改用 CREATE DATABA标准版。
语法
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。最小 日志化 为 1。
[ @datalogical1 = ] 'datalogical'
包含数据表的文件的逻辑名称。 datalogical 为 sysname。
必须有 1 到 16 个数据文件。 通常,如果预计数据库很大,必须分布在多个磁盘上,则创建多个数据文件。
[ @dataphysical1 = ] 'dataphysical'
物理名称。 其中包括包含数据表的文件的完全限定路径。 dataphysical 为 nvarchar(260)。
[ @datasize1 = ] 'datasize'
包含数据表的文件的大小(以 MB 为单位)。 datasize 为 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;
另请参阅
数据库分离和附加 (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)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈