sp_create_removable (Transact-SQL)

適用於:SQL Server

建立卸除式媒體資料庫。 建立三個或多個檔案(一個用於系統目錄數據表、一個用於事務歷史記錄,另一個用於數據表),並將資料庫放在這些檔案上。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 建議您改用 CREATE DATABASE

Transact-SQL 語法慣例

語法

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

引數

[ @dbname = ] N'dbname'

要用於卸除式媒體的資料庫名稱。 @dbname為 sysname,預設值為 NULL

[ @syslogical = ] N'syslogical'

包含系統目錄數據表之檔案的邏輯名稱。 @syslogical為 sysname 預設值為 NULL

[ @sysphysical = ] N'sysphysical'

實體名稱。 @sysphysical為 nvarchar(260),預設值為 NULL。 此值包含保存系統目錄數據表之檔案的完整路徑。

[ @syssize = ] syssize

保存系統目錄數據表之檔案的大小,以 MB 為單位。 @syssize為 int,預設值為 NULL

[ @loglogical = ] N'loglogical'

包含事務歷史記錄檔的檔案邏輯名稱。 @loglogical為 sysname,預設值為 NULL

[ @logphysical = ] N'logphysical'

實體名稱。 @logphysical為 nvarchar(260),預設值為 NULL。 這個值包含包含事務歷史記錄檔之檔案的完整路徑。

[ @logsize = ] logsize

包含事務歷史記錄檔的大小,以 MB 為單位。 @logsize為 int,最小值為 1

[ @datalogical1 = ] N'datalogical1'

包含數據表之檔案的邏輯名稱。 @datalogical1為 sysname,預設值為 NULL

與資料檔案之間116必須有 。 一般而言,當資料庫必須是大型且必須分散在多個磁碟上時,就會建立多個數據檔。

[ @dataphysical1 = ] N'dataphysical1'

實體名稱。 @dataphysical1為 nvarchar(260),預設值為 NULL。 這個值包含包含數據表之檔案的完整路徑。

[ @datasize1 = ] datasize1

包含數據表的檔案大小,以 MB 為單位。 @datasize1為 int,最小值為 1

傳回碼值

0 (成功) 或 1 (失敗)。

結果集

無。

備註

如果您想要在卸除式媒體上製作資料庫複本,例如光碟,並將資料庫散發給其他使用者,請使用此預存程式。

權限

需要 CREATE DATABASECREATE ANY DATABASEALTER 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;