Skip to content

Commit c20b37f

Browse files
authored
Merge pull request #3889 from BrentOzarULTD/3888_copilot_compat_fixes
#3888 Fix 4 compatibility issues from Copilot review
2 parents 22b3d4f + 7363ca5 commit c20b37f

4 files changed

Lines changed: 32 additions & 9 deletions

File tree

sp_BlitzCache.sql

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,13 @@ BEGIN
828828
RETURN;
829829
END;
830830

831+
/* Check database compatibility level for STRING_SPLIT support */
832+
IF (SELECT compatibility_level FROM sys.databases WHERE database_id = DB_ID()) < 130
833+
BEGIN
834+
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);
835+
RETURN;
836+
END;
837+
831838
IF(@OutputType = 'NONE' AND (@OutputTableName IS NULL OR @OutputSchemaName IS NULL OR @OutputDatabaseName IS NULL))
832839
BEGIN
833840
RAISERROR('This procedure should be called with a value for all @Output* parameters, as @OutputType is set to NONE',12,1);

sp_BlitzIndex.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ versions for free, watch training videos on how it works, get more info on
9898
the findings, contribute your own code, and more.
9999
100100
Known limitations of this version:
101-
- Only Microsoft-supported versions of SQL Server. Sorry, 2005 and 2000.
101+
- Only Microsoft-supported versions of SQL Server. Sorry, 2014 and older.
102102
- Index create statements are just to give you a rough idea of the syntax. It includes filters and fillfactor.
103103
-- Example 1: index creates use ONLINE=? instead of ONLINE=ON / ONLINE=OFF. This is because it is important
104104
for the user to understand if it is going to be offline and not just run a script.

sp_BlitzWho.sql

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ SELECT
1717
WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '10%' THEN 0
1818
WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '11%' THEN 0
1919
WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '12%' THEN 0
20+
WHEN CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')) LIKE '13%'
21+
AND CAST(PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSION')), 2) AS INT) < 5026 THEN 0
2022
ELSE 1
2123
END
2224
) = 0
2325
BEGIN
2426
DECLARE @msg VARCHAR(8000);
25-
SELECT @msg = 'Sorry, sp_BlitzWho doesn''t work on versions of SQL prior to 2016.' + REPLICATE(CHAR(13), 7933);
27+
SELECT @msg = 'Sorry, sp_BlitzWho doesn''t work on versions of SQL prior to 2016 SP2.' + REPLICATE(CHAR(13), 7933);
2628
PRINT @msg;
2729
RETURN;
2830
END;
@@ -83,7 +85,7 @@ versions for free, watch training videos on how it works, get more info on
8385
the findings, contribute your own code, and more.
8486
8587
Known limitations of this version:
86-
- Only SQL Server 2016 and newer. Sorry, 2014 and earlier.
88+
- Only SQL Server 2016 SP2 and newer. Sorry, 2016 SP1 and earlier.
8789
- If @OutputDatabaseName and @OutputSchemaName are populated, the database and
8890
schema must already exist. We will not create them, only the table.
8991

sp_kill.sql

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -648,13 +648,24 @@ For more info, visit http://FirstResponderKit.org
648648
IF @Debug = 1
649649
RAISERROR('Creating/updating persistent output table...', 0, 1) WITH NOWAIT;
650650

651-
SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
651+
IF @AzureSQLDB = 1
652+
SET @ObjectFullName = @OutputSchemaName + N'.' + @OutputTableName;
653+
ELSE
654+
SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
652655

653656
/* Create table if it doesn't exist */
654-
SET @StringToExecute = N'USE ' + @OutputDatabaseName + N';
655-
IF EXISTS(SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = ''' + @OutputSchemaName + N''')
656-
AND NOT EXISTS (SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = ''' + @OutputSchemaName + N''' AND QUOTENAME(TABLE_NAME) = ''' + @OutputTableName + N''')
657-
CREATE TABLE ' + @OutputSchemaName + N'.' + @OutputTableName + N' (
657+
IF @AzureSQLDB = 1
658+
SET @StringToExecute = N'
659+
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = ''' + @OutputSchemaName + N''')
660+
AND NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = ''' + @OutputSchemaName + N''' AND QUOTENAME(TABLE_NAME) = ''' + @OutputTableName + N''')
661+
CREATE TABLE ' + @ObjectFullName + N' (';
662+
ELSE
663+
SET @StringToExecute = N'
664+
IF EXISTS(SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = ''' + @OutputSchemaName + N''')
665+
AND NOT EXISTS (SELECT * FROM ' + @OutputDatabaseName + N'.INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA) = ''' + @OutputSchemaName + N''' AND QUOTENAME(TABLE_NAME) = ''' + @OutputTableName + N''')
666+
CREATE TABLE ' + @ObjectFullName + N' (';
667+
668+
SET @StringToExecute = @StringToExecute + N'
658669
Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
659670
ServerName NVARCHAR(128) NULL,
660671
CheckDate DATETIMEOFFSET NULL,
@@ -839,7 +850,10 @@ For more info, visit http://FirstResponderKit.org
839850
IF @OutputDatabaseName IS NOT NULL AND @OutputSchemaName IS NOT NULL AND @OutputTableName IS NOT NULL
840851
AND EXISTS (SELECT * FROM sys.databases WHERE QUOTENAME([name]) = @OutputDatabaseName)
841852
BEGIN
842-
SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
853+
IF @AzureSQLDB = 1
854+
SET @ObjectFullName = @OutputSchemaName + N'.' + @OutputTableName;
855+
ELSE
856+
SET @ObjectFullName = @OutputDatabaseName + N'.' + @OutputSchemaName + N'.' + @OutputTableName;
843857
SET @StringToExecute = N'UPDATE ot
844858
SET ot.KillStartedTime = t.KillStartedTime,
845859
ot.KillEndedTime = t.KillEndedTime,

0 commit comments

Comments
 (0)