--你是否有足夠的權限?如果有足夠的權限,可以備份到本機
--如果有,可以用下面的方法,查詢分析器中操作:
-- 創建共享目錄
exec master.dbo.XP_cmdshell 'md c:/bak'
exec master.dbo.XP_cmdshell 'net share bak=c:/bak'
--進行數據備份
backup database 數據庫 to disk='c:/bak/備份.bak'
/*--以下操作在我的電腦中進行:
打開我的電腦,地址欄中輸入:
//SQL服務器的計算機名/bak/
複製裏面的備份.bak到你的電腦就行了
--我的電腦中的操作結束--*/
--刪除備份生成的文件
exec master..xp_cmdshell 'del c:/bak/備份.bak'
--刪除共享
exec master.dbo.XP_cmdshell 'net share c:/bak /delete /y'
exec master.dbo.XP_cmdshell 'rd c:/bak'
--否則,你還是完全共享你本機的目錄,用下面的方法備份:
backup database 數據庫 to disk='//你的計算機名/共享目錄名/備份文件名'
---或通過映射網絡驅動器(這樣可以解決權限問題)
--1.映射
exec master..xp_cmdshell 'net use z: //xz/c$ "密碼" /user:xz/administrator'
/*--說明:
z: 是映射網絡路徑對應本機的盤符,與下面的備份對應
//xz/c$ 是要映射的網絡路徑
xz/administrator xz是遠程的計算機名,administrator是登陸的用戶名
密碼 上面指定的administrator用戶的密碼
--*/
--2.進行數據庫備份
backup database 數據庫名 to disk='z:/備份文件名'
--3.備份完成後刪除映射
exec master..xp_cmdshell 'net use z: /delete'
SQL code
--以下代碼放在作業裏做調度,自動備份、自動刪除4天前備份
--創建映射
exec master..xp_cmdshell 'net use w: /DatabaseBackup$ "password"/user:Roy',NO_OUTPUT
go
-----2000用遊標:
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
--2005用max支持2G的字符串
declare @s nvarchar(max),@del nvarchar(max)
select @s='',@del=''
select
@s=@s+
char(13)+'backup database '+quotename(Name)+' to disk =''w:'+Name+'_'+convert(varchar(8),getdate(),112)+'.bak'' with init',
@del=@del+
char(13)+'exec master..xp_cmdshell '' del w:'+Name+'_'+convert(varchar(8),getdate()-4,112)+'.bak'', no_output'
from master..sysdatabases where dbid>4 order by dbid asc
exec (@del)
exec(@s)
SQL code
企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL 腳本(TSQL)"
--"數據庫"選擇執行命令的數據庫
--"命令"中輸入要執行的語句:
declare @strsql varchar(1000)
declare @strdirname varchar(50)
declare @strcmd varchar(50)
declare @strsend varchar(1000)
declare @strdate varchar(50)
exec master..xp_cmdshell 'net use //192.168.0.151/d$ Password /user:192.168.0.151/administrator'
set @strsql='backup database new_his to disk=''//192.168.0.151/d$/serverd/'
set @strdirname=replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')+'12'
set @strcmd='md //192.168.0.151/d$/serverd/'
set @strcmd=@strcmd+@strdirname
exec master..xp_cmdshell @strcmd
--print @strsql
set @strsql=@strsql+@strdirname+'/new_hisbackup.dat'' with init,nounload,noskip,noformat'
--print @strsql
exec (@strsql)
----其中寫的IP地址及共享目錄,網友自行修改,Password一定要正確
--確定
--"調度"項
--新建調度
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反覆出現"
--點"更改"來設置你的時間安排
然後將SQL Agent服務啓動,並設置爲自動啓動,否則你的作業不會被執行
設置方法:
我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啓動類型--選擇"自動啓動"--確定.