如何將服務器上的SqlServer數據庫備份到本地電腦
有A數據庫服務器,B本機;
我如今想經過在B機器上經過代碼調用SQL來執行A數據庫的備份到B機器上
調用的SQL語句爲:Backup
Database
MYDATABASE
To
Disk=
'D:/test.bak'
,這樣備份的目錄是數據庫服務器A的D盤下;
怎麼才能備份到A的D盤下呢?
請各位給予建議,謝謝!
要用遠程數據庫能夠備份本地。
本地數據庫也能夠備份到遠程。
exec
master..xp_cmdshell
'net use z: \\192.168.1.145\c$ "密碼" /user:192.168.1.145\administrator'
/*
z: 是映射網絡路徑對應本機的盤符,與下面的備份對應
\\192.168.1.145\c$ 是要映射的網絡路徑
192.168.1.145\administrator
192.168.1.145是遠程的計算機名,administrator是登錄的用戶名
密碼 上面指定的administrator用戶的密碼
backup
database
TEST
to
disk=
'z:\Test.bak'
exec
master..xp_cmdshell
'net use z: /delete'
exec
master..xp_cmdshell
'net use w: \DatabaseBackup$ "password"/user:Roy'
,NO_OUTPUT
go
declare
@s nvarchar(200),@del nvarchar(200)
select
@s=
''
,@del=
''
declare
datebak
cursor
for
select
[bak]=
'backup database '
+quotename(
Name
)+
' to disk ='
'w:'
+
Name
+
'_'
+
convert
(
varchar
(8),getdate(),112)+
'.bak'
' with init'
,
[del]=
'exec master..xp_cmdshell '
' del w:'
+
Name
+
'_'
+
convert
(
varchar
(8),getdate()-4,112)+
'.bak'
', no_output'
from
master..sysdatabases
where
dbid>4
open
datebak
fetch
next
from
datebak
into
@s,@del
while @@fetch_status=0
begin
exec
(@del)
exec
(@s)
fetch
next
from
datebak
into
@s,@del
end
close
datebak
deallocate
datebak
go
exec
master..xp_cmdshell
'net use w: /delete'
go
企業管理器—>數據庫服務器—>管理目錄—>SQL SERVER代理—>做業—>右鍵 選—>新建
常規選項頁—>輸入做業名稱—>選中全部者。
步驟選項頁—>新建—>輸入步驟名—>類型 TSQL腳本—>選擇須要執行的數據庫—>在命令框裏輸入你的SQL 腳本:
如:
update
tb
set
狀態= ...
where
日期...........
你能夠點左下角的【分析】按鈕,分析一下語法,分析無誤,按肯定。
調度選項頁—>新建調度—>輸入調度名稱—>調度類型 你能夠選擇也能夠點右下角的【更改】按鈕進行更改,肯定。
任務欄 SQL SERVER服務器的小圖標 雙擊 服務 選中 SQL SERVER AGENT,點【開始/繼續】,選中當啓動OS時,自動啓動服務,就能夠了。
到你定的那個時間點,SQL SERVER會自動去執行你的腳本的。
若是須要生成腳本的話,企業管理器—>數據庫服務器—>管理目錄—>SQL SERVER代理—>做業—>右鍵你剛完成的做業—>全部任務
—>生成SQL腳本,便可生成你須要的腳本