Skip to content

Instantly share code, notes, and snippets.

@mattuu
Created January 9, 2020 16:32
Show Gist options
  • Save mattuu/029bc9a84fa9cba05e749f3a05f8c1b4 to your computer and use it in GitHub Desktop.
Save mattuu/029bc9a84fa9cba05e749f3a05f8c1b4 to your computer and use it in GitHub Desktop.
Restore SQL Server database
USE master;
GO
ALTER DATABASE [<database_name, varchar(16), database_name>]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DECLARE
@DatabaseName nvarchar(16) ='<database_name, varchar(16), database_name>',
@BackupPath nvarchar(255) = '<backup_path, varchar(255), backup_path>',
@DbFileName nvarchar(255) = '<database_name, varchar(255), database_name>',
@LogFileName nvarchar(255) = '<database_name, varchar(255), database_name>_Log',
@DataPath nvarchar(255) = '<database_path, varchar(255), database_path>',
@DbFullPath nvarchar(255),
@LogFullPath nvarchar(255)
SET @DbFileName = @DatabaseName + '.mdf'
SET @LogFileName = @DatabaseName + '_Log.ldf'
SET @DbFullPath = @DataPath + @DbFileName
SET @LogFullPath = @DataPath + @LogFileName
RESTORE DATABASE @DatabaseName
FROM DISK = @BackupPath
WITH FILE = 1,
MOVE @DbFileName TO @DbFullPath,
MOVE @LogFileName TO @LogFullPath,
NOUNLOAD,
STATS = 10,
REPLACE
GO
USE [<database_name, varchar(16), database_name>]
GO
IF NOT EXISTS (SELECT 1 FROM master.dbo.syslogins WHERE name = '<login_name, varchar(100), login_name>')
BEGIN
CREATE LOGIN [<login_name, varchar(100), login_name>] FROM WINDOWS
END
IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = '<user_name, varchar(100), user_name>')
BEGIN
CREATE USER [<user_name, varchar(100), user_name>] FROM LOGIN [<login_name, varchar(100), login_name>]
EXEC master..sp_addsrvrolemember @loginame = N'<user_name, varchar(100), user_name>', @rolename = N'sysadmin'
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment