看csdn上看到一朋友寫了乙個《貼個sql小工具--移動資料庫物理檔案》
使用是方法是先設定資料庫離線,再移動資料庫檔案,然後修改資料庫的儲存檔案路徑,最後再設定資料庫聯機。
這裡我寫的使用的是,先分離資料庫,再移動資料庫檔案,然後再附加新資料庫檔案的方法:
usemaster
goif
object_id('
sp_movedb',
'p')
isnot
null
drop
proc
sp_movedb
gocreate
proc
sp_movedb
(@database
sysname,
@pathto
nvarchar
(1024))
asdeclare
@sql
nvarchar
(max
),@attachdatabase
nvarchar
(max
),@error
nvarchar
(1024
),@dir
varchar
(1024
),@ok
intif
db_id
(@database
) is
null
begin
set@error='
錯誤的資料庫名: '+
@database
raiserror
50001
@error
return
endset
@dir='
dir '+
@pathto
exec
@ok=
xp_cmdshell
@dir
,no_output
if@ok
<>
0begin
set@error='
錯誤的檔案路徑: '+
@pathto
raiserror
50001
@error
return
endselect
@database
=name
from
sys.databases
where
name
=@database
'資料庫: '+
@database
+char(13
)+char(10
)+'正在移動資料庫檔案,請稍候
'select
@sql
=isnull
(@sql
+char(13
)+char(10
),'')+
'kill '+
rtrim
(spid)
from
sys.sysprocesses
where
db_name
(dbid)
=@database
exec
(@sql
)set
@sql
=null
select
@sql
=isnull
(@sql
+char(13
)+char(10
),'')+
'exec xp_cmdshell
''move '+
physical_name
+char(32
)+@pathto
+right
(physical_name,
charindex('
\',reverse
(physical_name)))
+'''
,no_output',
@attachdatabase
=isnull
(@attachdatabase+'
,','
create database '+
quotename
(@database)+
'on ')
+'(filename=
'''+
@pathto
+right
(physical_name,
charindex('
\',reverse
(physical_name)))
+''')'
from
sys.master_files
where
database_id
=db_id
(@database
)set
@sql='
exec sp_detach_db '+
quotename
(@database)+
char(13
)+char(10
)+@sql
+char(13
)+char(10
)+@attachdatabase+'
for attach
'exec
(@sql)if
@@error=0
'完成移動資料庫檔案.
'else
'移動資料庫檔案失敗.'
test:
exec sp_movedb 'test1' ,'f:\sql2005\test' /*
資料庫: test1
正在移動資料庫檔案,請稍候... ...
完成移動資料庫檔案. */
--移動所有的使用者資料庫檔案如下:
declare
@sql
nvarchar
(max
)declare
@path
nvarchar
(1024
)set
@path='
f:\sql2005\test
'select
@sql
=isnull
(@sql
+char(13
)+char(10
),'')+
'exec sp_movedb '+
quotename
(name) +'
,'''
+@path
+''''
from
sys.databases
where
name
notin('
master',
'model',
'msdb',
'tempdb',
'reportserver',
'reportservertempdb')
exec
(@sql)/*
資料庫: deadlocktest
正在移動資料庫檔案,請稍候
完成移動資料庫檔案.
資料庫: test1
正在移動資料庫檔案,請稍候
完成移動資料庫檔案.*/
資料庫檔案移動
oracle資料庫由資料檔案,控制檔案和聯機日誌檔案三種檔案組成。由於磁碟空間的變化,或者基於資料庫磁碟i o效能的調整等,我們可能會考慮移動資料庫檔案。下面以unix平台為例,分別討論三種資料庫檔案的移動方法。一.移動資料檔案 可以用alter database,alter tablespace兩...
Oracle移動資料庫檔案
一。設定要移動的資料庫 開始 執行 cmd命令 set oracle sid experience experience你要移動檔案所屬的資料庫的sid 二。進入sqlplus sqlplus nolog conn sys sys as sysdba 已連線。select name from v d...
如何上傳SQL資料庫檔案
如何上傳sql資料庫檔案 1.取得遠端伺服器的ip和登入使用者名稱 密碼 2.在本地安裝好sql server伺服器 4.匯出資料庫,源選擇本地,目的選擇遠端伺服器 需要輸入ip,帳號,密碼 5.下一步,選擇所有的表和檢視 6.下一步,立即執行。等待片刻即後提示成功。我做過多次,本方法絕對可行。參考...