Skip to content

Commit 862cac7

Browse files
Merge branch 'dev' into issue_774/add-support-sql-server-2008-2014
2 parents 0422466 + 91307d0 commit 862cac7

File tree

8 files changed

+595
-141
lines changed

8 files changed

+595
-141
lines changed

DatabaseRestore.sql

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,11 @@ EXEC dbo.DatabaseRestore
2828
@RunRecovery = 1;
2929
*/
3030

31-
USE [master]
31+
IF OBJECT_ID('dbo.sp_DatabaseRestore') IS NULL
32+
EXEC ('CREATE PROCEDURE dbo.sp_DatabaseRestore AS RETURN 0;')
3233
GO
3334

34-
SET ANSI_NULLS ON
35-
GO
36-
SET QUOTED_IDENTIFIER ON
37-
GO
38-
39-
CREATE PROCEDURE [dbo].[DatabaseRestore]
35+
ALTER PROCEDURE [dbo].[sp_DatabaseRestore]
4036
@Database NVARCHAR(128), @RestoreDatabaseName NVARCHAR(128) = NULL, @BackupPathFull NVARCHAR(MAX), @BackupPathLog NVARCHAR(MAX),
4137
@MoveFiles bit = 0, @MoveDataDrive NVARCHAR(260) = NULL, @MoveLogDrive NVARCHAR(260) = NULL, @TestRestore bit = 0, @RunCheckDB bit = 0,
4238
@ContinueLogs bit = 0, @RunRecovery bit = 0
@@ -46,8 +42,6 @@ SET NOCOUNT ON;
4642
DECLARE @cmd NVARCHAR(4000), @sql NVARCHAR(MAX), @LastFullBackup NVARCHAR(500), @BackupFile NVARCHAR(500);
4743
DECLARE @FileList TABLE (BackupFile NVARCHAR(255));
4844

49-
DECLARE @MoveDataLocation AS NVARCHAR(500), @MoveDataLocationName AS NVARCHAR(500), @MoveLogLocation AS NVARCHAR(500), @MoveLogLocationName AS NVARCHAR(500);
50-
5145
IF @RestoreDatabaseName IS NULL
5246
SET @RestoreDatabaseName = @Database;
5347

@@ -67,7 +61,6 @@ WHERE BackupFile LIKE '%.bak'
6761
-- Get the SQL Server version number because the columns returned by RESTORE commands vary by version
6862
-- Based on: https://www.brentozar.com/archive/2015/05/sql-server-version-detection/
6963
-- Need to capture BuildVersion because RESTORE HEADERONLY changed with 2014 CU1, not RTM
70-
SELECT SERVERPROPERTY ('productversion')
7164
DECLARE @ProductVersion AS varchar(20) = CAST(SERVERPROPERTY ('productversion') AS varchar(20));
7265
DECLARE @MajorVersion AS smallint = CAST(PARSENAME(@ProductVersion, 4) AS smallint);
7366
DECLARE @MinorVersion AS smallint = CAST(PARSENAME(@ProductVersion, 3) AS smallint);
@@ -165,8 +158,8 @@ IF @MajorVersion >= 13 OR (@MajorVersion = 12 AND @BuildVersion >= 2342)
165158

166159
SET @HeadersSQL += ')' + CHAR(13) + CHAR(10);
167160
SET @HeadersSQL += 'EXEC (''RESTORE HEADERONLY FROM DISK=''''{Path}'''''')';
168-
169-
DECLARE @MoveOption AS NVARCHAR(2000)= '';
161+
162+
DECLARE @MoveOption AS NVARCHAR(MAX)= '';
170163

171164
IF @MoveFiles = 1
172165
BEGIN
@@ -189,21 +182,23 @@ BEGIN
189182
EXECUTE @sql = [dbo].[CommandExecute] @Command = @sql, @CommandType = 'RESTORE DATABASE', @Mode = 1, @DatabaseName = @Database, @LogToTable = 'Y', @Execute = 'Y';
190183

191184
--get the backup completed data so we can apply tlogs from that point forwards
185+
192186
SET @sql = REPLACE(@HeadersSQL, '{Path}', @BackupPathFull + @LastFullBackup);
193187
PRINT @sql;
194188
EXECUTE (@sql);
195189

196-
DECLARE @BackupDateTime AS CHAR(15), @FullLastLSN numeric(25,0);
190+
DECLARE @BackupDateTime AS CHAR(15), @FullLastLSN NUMERIC(25, 0);
197191

198192
SELECT @BackupDateTime = RIGHT(@LastFullBackup, 19)
199193

200-
SELECT @FullLastLSN = CAST(LastLSN AS numeric(25,0)) FROM #Headers WHERE BackupType = 1;
194+
SELECT @FullLastLSN = CAST(LastLSN AS NUMERIC(25, 0)) FROM #Headers WHERE BackupType = 1;
195+
201196
END;
202197
ELSE
203198
BEGIN
204-
DECLARE @DatabaseLastLSN BIGINT;
199+
DECLARE @DatabaseLastLSN NUMERIC(25, 0);
205200

206-
SELECT @DatabaseLastLSN = CAST(f.redo_start_lsn AS BIGINT)
201+
SELECT @DatabaseLastLSN = CAST(f.redo_start_lsn AS NUMERIC(25, 0))
207202
FROM master.sys.databases d
208203
JOIN master.sys.master_files f ON d.database_id = f.database_id
209204
WHERE d.name = @RestoreDatabaseName AND f.file_id = 1
@@ -226,7 +221,7 @@ DECLARE BackupFiles CURSOR FOR
226221

227222
OPEN BackupFiles;
228223

229-
DECLARE @i tinyint = 1, @LogFirstLSN numeric(25,0), @LogLastLSN numeric(25,0);
224+
DECLARE @i tinyint = 1, @LogFirstLSN NUMERIC(25, 0), @LogLastLSN NUMERIC(25, 0);
230225

231226
-- Loop through all the files for the database
232227
FETCH NEXT FROM BackupFiles INTO @BackupFile;
@@ -238,7 +233,7 @@ BEGIN
238233
PRINT @sql;
239234
EXECUTE (@sql);
240235

241-
SELECT @LogFirstLSN = CAST(FirstLSN AS numeric(25,0)), @LogLastLSN = CAST(LastLSN AS numeric(25,0)) FROM #Headers WHERE BackupType = 2;
236+
SELECT @LogFirstLSN = CAST(FirstLSN AS NUMERIC(25, 0)), @LogLastLSN = CAST(LastLSN AS NUMERIC(25, 0)) FROM #Headers WHERE BackupType = 2;
242237

243238
IF (@ContinueLogs = 0 AND @LogFirstLSN <= @FullLastLSN AND @FullLastLSN <= @LogLastLSN) OR (@ContinueLogs = 1 AND @LogFirstLSN <= @DatabaseLastLSN AND @DatabaseLastLSN < @LogLastLSN)
244239
SET @i = 2;

Documentation/Development/ReleaseProcess.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Well, useful is probably the wrong word. More like entertaining. Here we go.
2222
* Run _TestBed.sql: this has stored proc calls with common parameters. May have to add in new scenarios if new features are added.
2323
* If it passes, bump all the version numbers inside the scripts.
2424
* sp_foreachdb (no version number yet)
25-
* sp_BlitzWho (no version number yet)
25+
* sp_BlitzWho @Version and @VersionDate
2626
* sp_BlitzIndex @Version and @VersionDate
2727
* sp_BlitzFirst @VersionDate (no version)
2828
* sp_BlitzCache @Version and @VersionDate

Documentation/Development/_TestBed.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ EXEC sp_BlitzIndex @DatabaseName = 'StackOverflow', @Mode = 4, @SkipPartitions =
2121

2222
EXEC sp_BlitzIndex @DatabaseName = 'ChangeMe', @Mode = 4, @SkipPartitions = 0, @SkipStatistics = 0
2323

24+
EXEC sp_BlitzIndex @GetAllDatabases = 1, @Mode = 1
25+
26+
EXEC sp_BlitzIndex @GetAllDatabases = 1, @Mode = 2
27+
28+
EXEC sp_BlitzIndex @GetAllDatabases = 1, @Mode = 3
29+
30+
2431
/*BlitzCache*/
2532
EXEC sp_BlitzCache @SortOrder = 'all'
2633

sp_Blitz.sql

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ AS
3232
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
3333
DECLARE @Version VARCHAR(30);
3434
SET @Version = '5.0';
35-
SET @VersionDate = '20170301';
35+
SET @VersionDate = '20170307';
3636
SET @OutputType = UPPER(@OutputType);
3737

3838
IF @Help = 1 PRINT '
@@ -278,6 +278,15 @@ AS
278278
INSERT INTO #SkipChecks (CheckID) VALUES (181);
279279
END /* Amazon RDS skipped checks */
280280

281+
/* If the server is ExpressEdition, skip checks that it doesn't allow */
282+
IF CAST(SERVERPROPERTY('Edition') AS NVARCHAR(1000)) LIKE N'%Express%'
283+
BEGIN
284+
INSERT INTO #SkipChecks (CheckID) VALUES (30); /* Alerts not configured */
285+
INSERT INTO #SkipChecks (CheckID) VALUES (31); /* Operators not configured */
286+
INSERT INTO #SkipChecks (CheckID) VALUES (61); /* Agent alerts 19-25 */
287+
INSERT INTO #SkipChecks (CheckID) VALUES (73); /* Failsafe operator */
288+
INSERT INTO #SkipChecks (CheckID) VALUES (96); /* Agent alerts for corruption */
289+
END /* Express Edition skipped checks */
281290

282291

283292
/*

0 commit comments

Comments
 (0)