Create a Backup and Restore the database using Stored Procedure in MS SQL
CREATE PROCEDURE Dbo.Sp_BackUpRestore
(
@Process VARCHAR(10), -- specify the process name (example - restore or backup)
@DatabaseName VARCHAR(50), -- specify database name
@Path VARCHAR(MAX) -- specify full path
)
AS
BEGIN
DECLARE @DQuery varchar(MAX)
DECLARE @ErrorMessage NVARCHAR(MAX)
IF @Process<>'' AND @DatabaseName<>'' AND @Path<>''
BEGIN
IF @Process=LOWER('backup')
BEGIN
BEGIN TRY
IF EXISTS(SELECT [Name] FROM sys.databases WHERE [Name]=@DatabaseName )
BEGIN
SET @DQuery='BACKUP DATABASE '+@DatabaseName+' TO DISK =N'''+@Path+'\'+@DatabaseName+'.bak''' PRINT(@DQuery)
EXECUTE(@DQuery)
END
ELSE
BEGIN
PRINT('Database Dose not Exists in Sql Server')
END
END TRY
BEGIN CATCH
SET @ErrorMessage=ERROR_MESSAGE()
RAISERROR(@ErrorMessage,16,1)
END CATCH
END
IF @Process=LOWER('restore')
BEGIN
BEGIN TRY
IF NOT EXISTS(SELECT [Name] FROM Sys.Databases WHERE [Name]=@DatabaseName)
BEGIN
SET @DQuery='RESTORE DATABASE '+@DatabaseName+' FROM DISK =N'''+@Path+'\'+@DatabaseName+'.bak'''
PRINT(@DQuery)
EXECUTE(@DQuery)
END
ELSE
BEGIN
PRINT('Database Exists in Sql Server')
PRINT('It can not Override')
END
END TRY
BEGIN CATCH
SET @ErrorMessage=ERROR_MESSAGE()
RAISERROR(@ErrorMessage,16,1)
END CATCH
END
END
ELSE
BEGIN
PRINT('Please Enter The Parameter')
END
END
GO
Calling Stored Procedure
-- For Backup the Database
EXEC Sp_BackUpRestore 'backup','HSM','C:\Database'
-- For Restore the Database
EXEC Sp_BackUpRestore 'restore','HSM','C:\Database'
Comments
Post a Comment