Odzálohování db MSSQL ze skriptu
Na MSSQL může leckoho štvát, že před odzálohováním nesmí být k db nikdo připojen, přece jenom ruční zavírání spojení připojených uživatelů zdržuje. Následující skript to udělá za vás - nejprve všechny připojené uživatele odpojí a pak udělá restore. Což znamená, že to v sobě nese jistou dávku nebezpečí, obzvláště, pokud si spletete db nebo server :-)
USE master
GO
/* ***** POPRAV VSECHNY BEZICI PROCESY ***** */
DECLARE @dbName sysname;
DECLARE @spid smallint;
SET @dbName = 'mojeDB'
DECLARE spid_cursor CURSOR FOR
select spid from sysprocesses where dbid = (select dbid from sysdatabases where name = @dbName)
OPEN spid_cursor
FETCH NEXT FROM spid_cursor
INTO @spid
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC('KILL ' + @spid)
FETCH NEXT FROM spid_cursor
INTO @spid
END
CLOSE spid_cursor
DEALLOCATE spid_cursor
/* ***** OBNOV DATABAZI ZE ZALOHY ***** */
RESTORE DATABASE mojeDb
FROM DISK = 'c:\mojedb.bak'
WITH MOVE 'mojedb_Data' TO 'c:\Mssql\Data\mojedb_Data.mdf',
MOVE 'mojedb_log' TO 'c:\Mssql\Data\mojedb_Log.ldf'
GO
USE mojeDb
GO
sp_change_users_login 'Auto_Fix' ,'mujUser'
GO
Informace ke stavu builder.cz zde
vytvořil Mi.Chal. 16.5. 2006 14:51, naposledy změněnil Mi.Chal. 16.5. 2006 14:55
přečteno: 1370x