6969 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
7070
7171
72- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
72+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
7373 SET @OutputType = UPPER(@OutputType);
7474
7575 IF(@VersionCheckMode = 1)
@@ -10545,6 +10545,7 @@ IF NOT EXISTS ( SELECT 1
1054510545 SET NOCOUNT OFF;
1054610546END
1054710547GO
10548+
1054810549SET ANSI_NULLS ON;
1054910550SET QUOTED_IDENTIFIER ON
1055010551
@@ -10585,7 +10586,7 @@ BEGIN
1058510586SET NOCOUNT ON;
1058610587SET STATISTICS XML OFF;
1058710588
10588- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
10589+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
1058910590
1059010591IF(@VersionCheckMode = 1)
1059110592BEGIN
@@ -11438,6 +11439,7 @@ END
1143811439
1143911440END
1144011441GO
11442+
1144111443IF OBJECT_ID('dbo.sp_BlitzBackups') IS NULL
1144211444 EXEC ('CREATE PROCEDURE dbo.sp_BlitzBackups AS RETURN 0;');
1144311445GO
@@ -11464,7 +11466,7 @@ AS
1146411466 SET STATISTICS XML OFF;
1146511467 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
1146611468
11467- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
11469+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
1146811470
1146911471 IF(@VersionCheckMode = 1)
1147011472 BEGIN
@@ -12963,6 +12965,7 @@ END;
1296312965END;
1296412966
1296512967GO
12968+
1296612969SET ANSI_NULLS ON;
1296712970SET ANSI_PADDING ON;
1296812971SET ANSI_WARNINGS ON;
@@ -13263,7 +13266,7 @@ SET NOCOUNT ON;
1326313266SET STATISTICS XML OFF;
1326413267SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
1326513268
13266- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
13269+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
1326713270SET @OutputType = UPPER(@OutputType);
1326813271
1326913272IF(@VersionCheckMode = 1)
@@ -13793,6 +13796,13 @@ BEGIN
1379313796 RETURN;
1379413797END;
1379513798
13799+ /* Check database compatibility level for STRING_SPLIT support */
13800+ IF (SELECT compatibility_level FROM sys.databases WHERE database_id = DB_ID()) < 130
13801+ BEGIN
13802+ RAISERROR('sp_BlitzCache requires database compatibility level 130 or higher. If your user databases aren''t at that compat level yet, install sp_BlitzCache in master instead.', 16, 1);
13803+ RETURN;
13804+ END;
13805+
1379613806IF(@OutputType = 'NONE' AND (@OutputTableName IS NULL OR @OutputSchemaName IS NULL OR @OutputDatabaseName IS NULL))
1379713807BEGIN
1379813808 RAISERROR('This procedure should be called with a value for all @Output* parameters, as @OutputType is set to NONE',12,1);
@@ -21293,6 +21303,7 @@ END; /* End of writing results to table */
2129321303END; /*Final End*/
2129421304
2129521305GO
21306+
2129621307SET ANSI_NULLS ON;
2129721308SET ANSI_PADDING ON;
2129821309SET ANSI_WARNINGS ON;
@@ -21372,7 +21383,7 @@ SET NOCOUNT ON;
2137221383SET STATISTICS XML OFF;
2137321384SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
2137421385
21375- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
21386+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
2137621387SET @OutputType = UPPER(@OutputType);
2137721388
2137821389IF(@VersionCheckMode = 1)
@@ -21393,7 +21404,7 @@ versions for free, watch training videos on how it works, get more info on
2139321404the findings, contribute your own code, and more.
2139421405
2139521406Known limitations of this version:
21396- - Only Microsoft-supported versions of SQL Server. Sorry, 2005 and 2000 .
21407+ - Only Microsoft-supported versions of SQL Server. Sorry, 2014 and older .
2139721408 - Index create statements are just to give you a rough idea of the syntax. It includes filters and fillfactor.
2139821409 -- Example 1: index creates use ONLINE=? instead of ONLINE=ON / ONLINE=OFF. This is because it is important
2139921410 for the user to understand if it is going to be offline and not just run a script.
@@ -28787,6 +28798,7 @@ BEGIN CATCH
2878728798 END CATCH;
2878828799END
2878928800GO
28801+
2879028802IF OBJECT_ID('dbo.sp_BlitzLock') IS NULL
2879128803BEGIN
2879228804 EXECUTE ('CREATE PROCEDURE dbo.sp_BlitzLock AS RETURN 0;');
@@ -28831,7 +28843,7 @@ BEGIN
2883128843 SET XACT_ABORT OFF;
2883228844 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
2883328845
28834- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
28846+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
2883528847
2883628848 IF @VersionCheckMode = 1
2883728849 BEGIN
@@ -29359,8 +29371,38 @@ BEGIN
2935929371 AND dxs.create_time IS NOT NULL
2936029372 )
2936129373 BEGIN
29362- RAISERROR('A session with the name %s does not exist or is not currently active.', 11, 1, @EventSessionName) WITH NOWAIT;
29363- RETURN;
29374+ IF @EventSessionName = N'system_health'
29375+ AND NOT EXISTS
29376+ (
29377+ SELECT
29378+ 1/0
29379+ FROM sys.database_event_sessions AS ses
29380+ WHERE ses.name = @EventSessionName
29381+ )
29382+ BEGIN
29383+ RAISERROR('
29384+ The system_health extended events session is not available in Azure SQL DB.
29385+
29386+ To use sp_BlitzLock in Azure SQL DB, you have two options:
29387+
29388+ 1. Create a database-scoped deadlock XE session, e.g.:
29389+
29390+ CREATE EVENT SESSION [deadlocks] ON DATABASE
29391+ ADD EVENT sqlserver.database_xml_deadlock_report
29392+ ADD TARGET package0.ring_buffer;
29393+ ALTER EVENT SESSION [deadlocks] ON DATABASE STATE = START;
29394+
29395+ Then call: EXEC sp_BlitzLock @EventSessionName = N''deadlocks'', @TargetSessionType = N''ring_buffer'';
29396+
29397+ 2. Log deadlock XML to a table and use the @TargetTableName parameter.
29398+ ', 0, 1) WITH NOWAIT;
29399+ RETURN;
29400+ END;
29401+ ELSE
29402+ BEGIN
29403+ RAISERROR('A session with the name %s does not exist or is not currently active.', 11, 1, @EventSessionName) WITH NOWAIT;
29404+ RETURN;
29405+ END;
2936429406 END;
2936529407 END;
2936629408
@@ -32407,7 +32449,7 @@ BEGIN
3240732449 en =
3240832450 DENSE_RANK() OVER (ORDER BY dp.event_date),
3240932451 qn =
32410- ROW_NUMBER() OVER (PARTITION BY dp.event_date ORDER BY dp.event_date),
32452+ ROW_NUMBER() OVER (PARTITION BY dp.event_date ORDER BY dp.event_date) - 1 ,
3241132453 dn =
3241232454 ROW_NUMBER() OVER (PARTITION BY dp.event_date, dp.id ORDER BY dp.event_date),
3241332455 dp.is_victim,
@@ -32492,7 +32534,7 @@ BEGIN
3249232534 en =
3249332535 DENSE_RANK() OVER (ORDER BY dp.event_date),
3249432536 qn =
32495- ROW_NUMBER() OVER (PARTITION BY dp.event_date ORDER BY dp.event_date),
32537+ ROW_NUMBER() OVER (PARTITION BY dp.event_date ORDER BY dp.event_date) - 1 ,
3249632538 dn =
3249732539 ROW_NUMBER() OVER (PARTITION BY dp.event_date, dp.id ORDER BY dp.event_date),
3249832540 is_victim = 1,
@@ -32554,11 +32596,8 @@ BEGIN
3255432596 d.en
3255532597 ) +
3255632598 N', Query #'
32557- + CASE
32558- WHEN d.qn = 0
32559- THEN N'1'
32560- ELSE CONVERT(nvarchar(10), d.qn)
32561- END + CASE
32599+ + CONVERT(nvarchar(10), d.qn + 1)
32600+ + CASE
3256232601 WHEN d.is_victim = 1
3256332602 THEN N' - VICTIM'
3256432603 ELSE N''
@@ -33378,6 +33417,7 @@ BEGIN
3337833417 END; /*End debug*/
3337933418 END; /*Final End*/
3338033419GO
33420+
3338133421SET ANSI_NULLS ON;
3338233422SET ANSI_PADDING ON;
3338333423SET ANSI_WARNINGS ON;
@@ -33397,12 +33437,14 @@ SELECT
3339733437 WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '10%' THEN 0
3339833438 WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '11%' THEN 0
3339933439 WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '12%' THEN 0
33440+ WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '13%'
33441+ AND CAST(PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')), 2) AS INT) < 5026 THEN 0
3340033442 ELSE 1
3340133443 END
3340233444) = 0
3340333445BEGIN
3340433446 DECLARE @msg VARCHAR(8000);
33405- SELECT @msg = 'Sorry, sp_BlitzWho doesn''t work on versions of SQL prior to 2016.' + REPLICATE(CHAR(13), 7933);
33447+ SELECT @msg = 'Sorry, sp_BlitzWho doesn''t work on versions of SQL prior to 2016 SP2 .' + REPLICATE(CHAR(13), 7933);
3340633448 PRINT @msg;
3340733449 RETURN;
3340833450END;
@@ -33442,7 +33484,7 @@ BEGIN
3344233484 SET STATISTICS XML OFF;
3344333485 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
3344433486
33445- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
33487+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
3344633488
3344733489 IF(@VersionCheckMode = 1)
3344833490 BEGIN
@@ -33463,7 +33505,7 @@ versions for free, watch training videos on how it works, get more info on
3346333505the findings, contribute your own code, and more.
3346433506
3346533507Known limitations of this version:
33466- - Only SQL Server 2016 and newer. Sorry, 2014 and earlier.
33508+ - Only SQL Server 2016 SP2 and newer. Sorry, 2016 SP1 and earlier.
3346733509 - If @OutputDatabaseName and @OutputSchemaName are populated, the database and
3346833510 schema must already exist. We will not create them, only the table.
3346933511
@@ -34496,6 +34538,7 @@ EXEC sp_executesql @StringToExecute,
3449634538
3449734539END
3449834540GO
34541+
3449934542IF OBJECT_ID('dbo.CommandExecute') IS NULL
3450034543BEGIN
3450134544 PRINT 'sp_DatabaseRestore is about to install, but you have not yet installed the Ola Hallengren maintenance scripts.'
@@ -34557,7 +34600,7 @@ SET STATISTICS XML OFF;
3455734600
3455834601/*Versioning details*/
3455934602
34560- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
34603+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
3456134604
3456234605IF(@VersionCheckMode = 1)
3456334606BEGIN
@@ -36189,6 +36232,7 @@ IF OBJECT_ID( 'tempdb..#SplitDiffBackups' ) IS NOT NULL DROP TABLE #SplitDiffBac
3618936232IF OBJECT_ID( 'tempdb..#SplitLogBackups' ) IS NOT NULL DROP TABLE #SplitLogBackups;
3619036233END
3619136234GO
36235+
3619236236IF OBJECT_ID('dbo.sp_ineachdb') IS NULL
3619336237 EXEC ('CREATE PROCEDURE dbo.sp_ineachdb AS RETURN 0')
3619436238GO
@@ -36228,7 +36272,7 @@ BEGIN
3622836272 SET NOCOUNT ON;
3622936273 SET STATISTICS XML OFF;
3623036274
36231- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
36275+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
3623236276
3623336277 IF(@VersionCheckMode = 1)
3623436278 BEGIN
@@ -36564,6 +36608,7 @@ OPTION (MAXRECURSION 0);
3656436608 DEALLOCATE dbs;
3656536609END
3656636610GO
36611+
3656736612IF OBJECT_ID('dbo.sp_kill') IS NULL
3656836613 EXEC ('CREATE PROCEDURE dbo.sp_kill AS RETURN 0;');
3656936614GO
@@ -36637,7 +36682,7 @@ BEGIN
3663736682 SOFTWARE.
3663836683 */
3663936684
36640- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
36685+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
3664136686
3664236687 IF(@VersionCheckMode = 1)
3664336688 BEGIN
@@ -37214,13 +37259,24 @@ For more info, visit http://FirstResponderKit.org
3721437259 IF @Debug = 1
3721537260 RAISERROR('Creating/updating persistent output table...', 0, 1) WITH NOWAIT;
3721637261
37217- SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
37262+ IF @AzureSQLDB = 1
37263+ SET @ObjectFullName = @OutputSchemaName + N'.' + @OutputTableName;
37264+ ELSE
37265+ SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
3721837266
3721937267 /* Create table if it doesn't exist */
37220- SET @StringToExecute = N'USE ' + @OutputDatabaseName + N';
37221- IF EXISTS(SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = ''' + @OutputSchemaName + N''')
37222- AND NOT EXISTS (SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = ''' + @OutputSchemaName + N''' AND QUOTENAME(TABLE_NAME) = ''' + @OutputTableName + N''')
37223- CREATE TABLE ' + @OutputSchemaName + N'.' + @OutputTableName + N' (
37268+ IF @AzureSQLDB = 1
37269+ SET @StringToExecute = N'
37270+ IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = ''' + @OutputSchemaName + N''')
37271+ AND NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = ''' + @OutputSchemaName + N''' AND QUOTENAME(TABLE_NAME) = ''' + @OutputTableName + N''')
37272+ CREATE TABLE ' + @ObjectFullName + N' (';
37273+ ELSE
37274+ SET @StringToExecute = N'
37275+ IF EXISTS(SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = ''' + @OutputSchemaName + N''')
37276+ AND NOT EXISTS (SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = ''' + @OutputSchemaName + N''' AND QUOTENAME(TABLE_NAME) = ''' + @OutputTableName + N''')
37277+ CREATE TABLE ' + @ObjectFullName + N' (';
37278+
37279+ SET @StringToExecute = @StringToExecute + N'
3722437280 Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
3722537281 ServerName NVARCHAR(128) NULL,
3722637282 CheckDate DATETIMEOFFSET NULL,
@@ -37405,7 +37461,10 @@ For more info, visit http://FirstResponderKit.org
3740537461 IF @OutputDatabaseName IS NOT NULL AND @OutputSchemaName IS NOT NULL AND @OutputTableName IS NOT NULL
3740637462 AND EXISTS (SELECT * FROM sys.databases WHERE QUOTENAME([name]) = @OutputDatabaseName)
3740737463 BEGIN
37408- SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
37464+ IF @AzureSQLDB = 1
37465+ SET @ObjectFullName = @OutputSchemaName + N'.' + @OutputTableName;
37466+ ELSE
37467+ SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
3740937468 SET @StringToExecute = N'UPDATE ot
3741037469 SET ot.KillStartedTime = t.KillStartedTime,
3741137470 ot.KillEndedTime = t.KillEndedTime,
@@ -37443,6 +37502,7 @@ For more info, visit http://FirstResponderKit.org
3744337502END;
3744437503GO
3744537504
37505+
3744637506IF (OBJECT_ID('dbo.SqlServerVersions') IS NULL)
3744737507BEGIN
3744837508
@@ -37957,6 +38017,7 @@ VALUES
3795738017 (10, 1600, 'RTM ', '', '2008-08-06', '2014-07-08', '2019-07-09', 'SQL Server 2008', 'RTM ')
3795838018;
3795938019GO
38020+
3796038021IF OBJECT_ID('dbo.sp_BlitzFirst') IS NULL
3796138022 EXEC ('CREATE PROCEDURE dbo.sp_BlitzFirst AS RETURN 0;');
3796238023GO
@@ -38006,7 +38067,7 @@ SET NOCOUNT ON;
3800638067SET STATISTICS XML OFF;
3800738068SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
3800838069
38009- SELECT @Version = '8.31 ', @VersionDate = '20260406 ';
38070+ SELECT @Version = '8.32 ', @VersionDate = '20260407 ';
3801038071
3801138072IF(@VersionCheckMode = 1)
3801238073BEGIN
0 commit comments