mainserver (SQL Server 2000),需備份資料庫 msdbdavid (Win2K),共享資料夾 E:\test,帳號 domain\zf / 123xp_cmdshell 執行 OS 指令-- 在 SQL Server 執行
EXEC master..xp_cmdshell 'net share test=E:\test'
-- 或呼叫 NetShareAdd API
EXEC master..xp_cmdshell 'net use \\david\test 123 /user:domain\zf'
xp_cmdshell:SQL Server 擴展預存程序,以命令列方式執行 OS 指令並回傳文字輸出net use:Windows 指令,建立/斷開共享資源連線BACKUP DATABASE msdb TO DISK='\\david\test\msdb.bak'
輸出範例:
已處理 1376 頁... 已處理 1 頁...
BACKUP DATABASE 成功處理 1377 頁,耗時 3.653 秒 (3.086 MB/秒)
EXEC master..xp_cmdshell 'net share test /delete'
-- 或呼叫 NetShareDel API
將步驟 3 語法改為:
RESTORE DATABASE msdb FROM DISK='\\david\test\msdb.bak'
sysadmin 固定伺服器角色成員可呼叫sp_dropextendedproc 'xp_cmdshell')SQL Server 2000 / 2005 / 2008 (需啟用「xp_cmdshell」進階選項)。