1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| /* =============================================
NG/22.12.2015 extrapolé depuis la procédure MS : https://support.microsoft.com/en-us/kb/2019698
Description: Backup Databases for SQLExpress
- Parameter1: databaseName
- Parameter2: backupType F=full, D=differential, L=log
- Parameter3: backup file location
Appel par msql-backup.bat dans tache planifiée :
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='\\srv-hg-ad\serveur2\planet\backup\', @databaseName=HG, @backupType='F'"
ou à midi :
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='\\srv-hg-ad\serveur2\planet\backup\', @databaseName=HG, @backupType='D'"
*/
USE [master]
GO
/****** Object: StoredProcedure [dbo].[sp_BackupDatabases] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_BackupDatabases] @databaseName sysname = null, @backupType CHAR(1), @backupLocation nvarchar(200)
AS
SET NOCOUNT ON;
-- Declare variables
DECLARE @BackupName varchar(100)
DECLARE @sqlCommand NVARCHAR(500)
/* pour tests
DECLARE @databaseName VARCHAR(20) set @databaseName='xxx'
DECLARE @backupType VARCHAR(1) set @backupType='D'
DECLARE @backupLocation VARCHAR(100) set @backupLocation='\monpc\repertoire_backup\'
*/
-- nom de la sauvegarde = date YYMMDD + option heure HHMMSS
SET @BackupName = @databaseName+REPLACE(CONVERT(VARCHAR, GETDATE(),2),'.','')
--cast(datediff(d, GETDATE(), DATEFROMPARTS(year(getdate()), 1, 1)) as nvarchar)
IF @backupType = 'D'
SET @BackupName = @BackupName+'_'+REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')+'.log' -- 108 = hhmmss
ELSE
SET @BackupName = @BackupName+'.dat'
-- Generate the dynamic SQL command to be executed
SET @sqlCommand = 'BACKUP DATABASE [' +@databaseName+ '] TO DISK='''+@backupLocation+@BackupName+''' WITH INIT, NOSKIP, NOFORMAT'
IF @backupType = 'D' SET @sqlCommand = @sqlCommand+', DIFFERENTIAL'
-- Execute the generated SQL command
--select @sqlCommand from hg.dbo.parametres
EXEC(@sqlCommand)
GO |
Partager