sp_addumpdevice (Transact-SQL)

適用于:SQL Server

適用于:SQL Server ( SQL Server 2008 (10.0.x) 到目前版本) 。

將備份裝置新增至 SQL Server 的實例。

Transact-SQL 語法慣例

語法

  
sp_addumpdevice [ @devtype = ] 'device_type'   
    , [ @logicalname = ] 'logical_name'   
    , [ @physicalname = ] 'physical_name'  
      [ , { [ @cntrltype = ] controller_type |  
          [ @devstatus = ] 'device_status' }  
      ]  

引數

[ @devtype = ] 'device_type' 這是備份裝置的類型。 device_typeVarchar (20) ,沒有預設值,而且可以是下列其中一個值。

描述
磁片 做為備份裝置的硬碟檔。
磁帶 Microsoft Windows 支援的任何磁帶裝置。

注意:未來版本的SQL Server將會移除磁帶備份裝置的支援。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

[ @logicalname = ] 'logical_name' 這是 BACKUP 和 RESTORE 語句中使用的備份裝置邏輯名稱。 logical_namesysname,沒有預設值,而且不能是 Null。

[ @physicalname = ] 'physical_name' 這是備份裝置的機構名稱。 實體名稱必須遵照作業系統檔案名稱或網路裝置通用命名慣例的規則,且必須包括完整路徑。 physical_nameNvarchar (260) ,沒有預設值,而且不能是 Null。

在遠端網路位置上建立備份裝置時,請確定啟動 Database Engine 的名稱在遠端電腦上具有適當的寫入功能。

如果您新增磁帶裝置,此參數必須是 Windows 指派給本機磁帶裝置的機構名稱;例如,電腦上第一部磁帶裝置的 \\.\TAPE0 。 磁帶裝置必須連接到伺服器電腦,不能在遠端使用。 請用引號括住包含非英數字元的名稱。

注意

此程序將指定的實體名稱輸入目錄中。 此程式不會嘗試存取或建立裝置。

[ @cntrltype = ] 'controller_type' 過時。 若指定,則會忽略此參數。 支援這個項目的目的,只是為了與舊版相容。 sp_addumpdevice的新 用法應該省 略此參數。

[ @devstatus = ] 'device_status' 過時。 若指定,則會忽略此參數。 支援這個項目的目的,只是為了與舊版相容。 sp_addumpdevice的新 用法應該省 略此參數。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

None

備註

sp_addumpdevice 將備份裝置新增至 sys.backup_devices 目錄檢視。 可在 BACKUP 和 RESTORE 陳述式中以邏輯方式參照裝置。 sp_addumpdevice 不會對實體裝置執行任何存取。 只有在執行 BACKUP 或 RESTORE 陳述式時,才對指定的裝置進行存取。 建立邏輯備份裝置可簡化 BACKUP 和 RESTORE 陳述式,其中指定裝置名稱是使用 "TAPE =" 或 "DISK =" 子句指定裝置路徑的替代方法。

擁有權和權限問題可能會干擾磁碟或檔案備份裝置的使用。 請確定已為啟動 Database Engine 的 Windows 帳戶提供適當的檔案許可權。

Database Engine 支援磁帶備份至 Windows 支援的磁帶裝置。 如需有關 Windows 所支援之磁帶裝置的詳細資訊,請參閱 Windows 的硬體相容性清單。 若要檢視電腦上可用的磁帶裝置,請使用 SQL Server Management Studio。

請只用磁帶機製造商所建議的特定磁帶機專用磁帶。 如果您使用數位錄音機 (DAT),請使用電腦等級的 DAT 磁帶 (數位資料儲存媒體 (DDS))。

sp_addumpdevice 無法在交易內執行。

若要刪除裝置,請使用sp_dropdeviceSQL Server Management Studio

權限

需要 diskadmin 固定伺服器角色的成員資格。

需要寫入磁碟的權限。

範例

A. 加入磁碟傾印裝置

下列範例會加入名稱為 mydiskdump 的磁碟備份裝置,實體名稱是 c:\dump\dump1.bak

USE master;  
GO  
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak';  

B. 加入網路磁碟備份裝置

下列範例會顯示如何加入稱為 networkdevice 的遠端磁碟備份裝置。 啟動 Database Engine 的名稱必須具有該遠端檔案的許可權 (\\<servername>\<sharename>\<path>\<filename>.bak) 。

USE master;  
GO  
EXEC sp_addumpdevice 'disk', 'networkdevice',  
    '\\<servername>\<sharename>\<path>\<filename>.bak';  

C. 加入磁帶備份裝置

下列範例會加入實體名稱為 tapedump1\\.\tape0 裝置。

USE master;  
GO  
EXEC sp_addumpdevice 'tape', 'tapedump1', '\\.\tape0';  

D. 備份至邏輯備份裝置

下列範例會針對備份磁碟檔案建立邏輯備份裝置,即 AdvWorksData。 接著,這個範例會將 AdventureWorks2019 資料庫備份至這個邏輯備份裝置。

USE master;  
GO  
EXEC sp_addumpdevice 'disk', 'AdvWorksData',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\AdvWorksData.bak';  
GO  
BACKUP DATABASE AdventureWorks2012   
 TO AdvWorksData  
   WITH FORMAT;  
GO  

另請參閱

備份裝置 (SQL Server)
BACKUP (Transact-SQL)
定義磁碟檔案的邏輯備份裝置 (SQL Server)
定義磁帶機的邏輯備份裝置 (SQL Server)
RESTORE (Transact-SQL)
sp_dropdevice (Transact-SQL)
sys.backup_devices (Transact-SQL)
系統預存程序 (Transact-SQL)