sys.sp_create_removable(Transact-SQL)

適用於:SQL Server

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

重要

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

Transact-SQL 語法慣例

語法

sys.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。

[ @sysphysical = ] N'sysphysical'

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

[ @syssize = ] 系統大小

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

[ @loglogical = ] N'loglogical'

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

[ @logphysical = ] N'logphysical'

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

[ @logsize = ] 對數大小

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

[ @datalogical1 = ] N'datalogical1'

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

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

[ @dataphysical1 = ] N'dataphysical1'

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

[ @datasize1 = ] 資料大小1

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

傳回碼值

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

結果集

無。

備註

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

權限

需要 CREATE DATABASE、CREATE ANY DATABASE 或 ALTER ANY DATABASE 權限。

為了維護 SQL Server 執行個體的磁碟控制,通常只有少數登入帳戶有建立資料庫的權限。

數據和記錄檔的許可權

每當資料庫上執行特定作業時,就會在其數據和記錄檔上設定對應的許可權。 如果檔案位於開啟許可權的目錄中,許可權會防止檔案意外遭到竄改。

資料庫上的作業 檔案上設定的許可權
已修改以新增檔案 已建立
備份 已附加
已還原 已卸離

注意

SQL Server 不會設定資料和記錄檔許可權。

範例

下列範例會將資料庫 inventory 建立為卸除式資料庫。

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