我正在編寫一個維護計劃,在該維護計劃中數據庫將被分離,然後將其駐留的文件夾的內容移至另一個驅動器進行歸檔。從路徑中刪除文件名
declare @db varchar(500), @path varchar(max), @SQL varchar(max)
declare u_cur cursor fast_forward for
select name, [filename] from #DbsToBeDetached
open u_cur
fetch next from u_cur into @db, @path
while (@@FETCH_STATUS = 0)
begin
SET @SQL = 'ALTER DATABASE ' + @db + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE;'
EXEC(@SQL)
EXEC sp_detach_db @db, 'true';
set @path = MagicFunction(@path)
exec sp_xp_cmdshell 'move /Y "' + @path + '" "e:\archive\"' + @db + '"'
fetch next from u_cur into @db, @path
end
close u_cur
deallocate u_cur
我堅持上的唯一的事情就是我做什麼它說:MagicFunction
把喜歡的路徑
D:\data\conversions\wi_sql2005\30950 example database\30950_data.mdf
到
D:\data\conversions\wi_sql2005\30950 example database
邏輯倒退,因爲我需要的路徑不是文件,但我認爲這將工作。 –
我認爲你正在做相反的事情。 OP希望PATH減去文件名。 –
我在99%的地方編輯了你的答案,但你給了/ 5分鐘後我會接受的錯誤的一面。 –