Home / T-SQL / Hoe backup ik mijn Database?

Hoe backup ik mijn Database?

ms_sql_1_add_128Dit artikel geeft een beschrijving hoe je een Microsoft SQL Server database kunt scripten. Dit script bevat de complete databasestructuur en alle objecten binnen de database zoals functies en Stored Procedures.


Als je regelmatig mutaties uitvoert op een database is het handig om een back-up te hebben van de structuur van de database en van alle objecten binnen deze database. Onderstaande Stored Procedure kun je hiervoor gebruiken, deze maakt een Database-script aan van de opgegeven database. De naam van het script wordt “Naam_Database_Datum_RandomNummer”.

CREATE PROCEDURE [dbo].[sp_GenDBscript] @vcDatabase AS VARCHAR(50)
AS
DECLARE @vcPath            AS VARCHAR(150)
DECLARE @vcCMD            AS VARCHAR(150)
DECLARE @vcParam        AS VARCHAR(150)
DECLARE @vcTotcmd        AS VARCHAR(250)
DECLARE @vcDate            AS VARCHAR(10)
DECLARE @vcTextPath        AS VARCHAR(150)
DECLARE @vcTextFile        AS VARCHAR(150)
DECLARE @vcMkdirStr        AS VARCHAR(150)
DECLARE @vcTime            AS VARCHAR(150)
DECLARE @iRC            AS INT
 
SET @vcTime = REPLACE(CONVERT(VARCHAR,getdate(), 114),':','')
SET @vcDate = CONVERT(VARCHAR, getdate(), 112)
SET @vcTextPath = 'E:SQLSCRIPTS' + @vcDatabase
SET @vcTextFile = @vcDatabase + '_' + @vcDate + '_' + @vcTime + '.sql'
SET @vcMkdirStr = 'mkdir ' + @vcTextPath
 
--checking if dir exist, If it doesnt exist it creates it
EXEC @iRC = master.dbo.xp_cmdshell @vcMkdirStr, NO_OUTPUT
IF @iRC <> 0
BEGIN
EXEC master.dbo.xp_cmdshell @vcMkdirStr , NO_OUTPUT
END
 
SET @vcPath = '"C:Program FilesMicrosoft SQL Server90ToolsPublishingSqlPubWiz.exe"'
SET @vcParam = ' script ' + @vcTextPath + '' + @vcTextFile + ' -schemaonly -d ' + @vcDatabase
SET @vcTotcmd =  @vcPath + @vcParam
 
print @vcTotcmd
 
EXEC master..xp_cmdshell @vcTotcmd

 

Het script voer je vervolgens uit met deze statement:

 

EXEC sp_GenDBscript 'AdventureWorks'

 

Het is nu ook mogelijk om het scripten van de database te schedulen, bijvoorbeeld aan het begin van een ETL-Run. Let even op hard-coded velden in de Stored Procedure (E:SQLSCRIPTS ), dit is de locatie van de output van het script (waar moet hij de file neerzetten).

Check Also

Calculate Age in SQL Server

In my daily work, I need to calculate and report the age of people very …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *