備份伺服器端SQL SERVER資料庫至本地目錄
阿新 • • 發佈:2019-01-31
/*資料庫備份儲存過程*/
/*支援從伺服器備份資料至本地機器上*/
--
CREATEPROCEDURE up_dbbackup
(
@backup_db_nameVARCHAR(128),
@filenameVARCHAR(128), /*備份路徑+檔名*/
@flagVARCHAR(60) OUTPUT
)
AS
SET NOCOUNT ON
DECLARE@sqlNVARCHAR(4000),@parNVARCHAR(1000)
IFNOTEXISTS(
SELECT*FROM master..sysdatabases
WHERE name=@backup_db_name
)
BEGIN
SELECT@flag ='資料庫'+@backup_db_name+'不存在!'
RETURN
END
ELSE
BEGIN
IFRIGHT(@filename,1)<>'/'ANDCHARINDEX('/',@filename)<>0
BEGIN
/*定義標誌*/
DECLARE@lFlagINT
EXECUTE@lFlag=master..xp_cmdshell 'DIR Z:'
IF@lFlag<>0
BEGIN
/* 在客戶機192.168.2.45上建立一個完全共享目錄db,指定一個使用者名稱和密碼.Win98使用者不需要使用者名稱和密碼*/
EXECUTE @lFlag=master..xp_cmdshell 'NET USE Z: //192.168.2.45/db$ test /user:ca.atc/test'
IF@lFlag<>0
BEGIN
SELECT@flag='伺服器建立目錄失敗!'
RETURN
END
END
SELECT@par='@filename VARCHAR(1000)'
SELECT@sql='BACKUP DATABASE '+@backup_db_name+' TO [email protected] WITH INIT'
EXECUTE sp_executesql @sql,@par,@filename
EXECUTE master..xp_cmdshell 'NET USE Z: /DELETE'
SELECT@flag='資料庫'+@backup_db_name+'備份成功!'
RETURN
END
ELSE
BEGIN
SELECT@flag='資料庫備份路徑錯誤!'
RETURN
END
END
**以上過程在SQL SERVER下測試通過
/*支援從伺服器備份資料至本地機器上*/
--
CREATEPROCEDURE up_dbbackup
(
@backup_db_nameVARCHAR(128),
@filenameVARCHAR(128), /*備份路徑+檔名*/
@flagVARCHAR(60) OUTPUT
)
AS
SET NOCOUNT ON
DECLARE@sqlNVARCHAR(4000),@parNVARCHAR(1000)
IFNOTEXISTS(
SELECT*FROM master..sysdatabases
WHERE name=@backup_db_name
)
BEGIN
SELECT@flag
RETURN
END
ELSE
BEGIN
IFRIGHT(@filename,1)<>'/'ANDCHARINDEX('/',@filename)<>0
BEGIN
/*定義標誌*/
DECLARE@lFlagINT
EXECUTE@lFlag=master..xp_cmdshell 'DIR Z:'
IF@lFlag<>0
BEGIN
/* 在客戶機192.168.2.45上建立一個完全共享目錄db,指定一個使用者名稱和密碼.Win98使用者不需要使用者名稱和密碼*/
EXECUTE
IF@lFlag<>0
BEGIN
SELECT@flag='伺服器建立目錄失敗!'
RETURN
END
END
SELECT@par='@filename VARCHAR(1000)'
SELECT@sql='BACKUP DATABASE '+@backup_db_name+' TO [email protected] WITH INIT'
EXECUTE sp_executesql
EXECUTE master..xp_cmdshell 'NET USE Z: /DELETE'
SELECT@flag='資料庫'+@backup_db_name+'備份成功!'
RETURN
END
ELSE
BEGIN
SELECT@flag='資料庫備份路徑錯誤!'
RETURN
END
END
**以上過程在SQL SERVER下測試通過