advertise
Hlavní stránka > počítače > MSSQL – Change recovery model script

MSSQL – Change recovery model script

24.04.2014 (4,497 zobrazení) Komentuj Přejdi na komentáře

Musel jsem řešit problém s přepnutím všech databází v rámci instance ze simple model do full recovery model (z důvodu zálohy transakčního logu 1x za hodinu). Vzhledem k tomu, že databází bylo asi 150 jsem to opravdu nechtěl klikat ručně.

Nejdříve jsem si ověřil, zda jsou opravdu všechny v SIMPLE


SELECT name, recovery_model_desc
FROM sys.databases
order by recovery_model_desc
GO

A pak jsem nalezl již připravený script (zdroj) a jen změnil SIMPLE na FULL


-- Variables to be used in the script
DECLARE @name VARCHAR(50) -- the name of the database
DECLARE @strSQL nvarchar(150) -- the SQL that will be executed against each database

USE Master

-- Declare a cursor that will return all user databases
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ( 'master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name -- Bring the first database name into the @name variable

WHILE @@FETCH_STATUS = 0 -- loop through each of the databases, until no records left
BEGIN
-- Create a SQL statement that will be executed
SET @strSQL = 'ALTER DATABASE [' + @name + '] SET RECOVERY FULL' -- Concatenate the SQL statement with the database name variable
EXEC SP_EXECUTESQL @strSQL -- run the statement

FETCH NEXT FROM db_cursor INTO @name -- Return the database
END

CLOSE db_cursor -- Without closing & deallocating the cursor, running the same code will generate a failure
DEALLOCATE db_cursor

A abych to nemusel vždy znovu hledat tak jsem si to uložil na blog :-)

blog
  1. June 28th, 2022 at 08:50 | #1

    Un petit mot pour vous dire que votre blog est super!

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 2 + 2 ?
Please leave these two fields as-is:

terms
rss