diff --git a/Clear Token Perm/ClearTokenPerm Agent Job.sql b/Clear Token Perm/ClearTokenPerm Agent Job.sql index 2430cde..c63c0d1 100644 --- a/Clear Token Perm/ClearTokenPerm Agent Job.sql +++ b/Clear Token Perm/ClearTokenPerm Agent Job.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* For background on why you might need this: diff --git a/Clear Token Perm/ClearTokenPerm.sql b/Clear Token Perm/ClearTokenPerm.sql index 7bd3bfb..95708cd 100644 --- a/Clear Token Perm/ClearTokenPerm.sql +++ b/Clear Token Perm/ClearTokenPerm.sql @@ -4,6 +4,8 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO diff --git a/Create Long IN List/Longingly.sql b/Create Long IN List/Longingly.sql index 742c937..59ec110 100644 --- a/Create Long IN List/Longingly.sql +++ b/Create Long IN List/Longingly.sql @@ -4,6 +4,8 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO @@ -35,8 +37,10 @@ CREATE OR ALTER PROCEDURE ) AS BEGIN - SET NOCOUNT, XACT_ABORT ON; + SET NOCOUNT ON + SET XACT_ABORT OFF; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; + DECLARE @psql nvarchar(MAX) = N'DECLARE @p', diff --git a/Dynamic SQL Logging/Dynamic SQL Logging.sql b/Dynamic SQL Logging/Dynamic SQL Logging.sql index 4dba875..e087ae8 100644 --- a/Dynamic SQL Logging/Dynamic SQL Logging.sql +++ b/Dynamic SQL Logging/Dynamic SQL Logging.sql @@ -1,18 +1,13 @@ -CREATE OR ALTER PROCEDURE - dbo.logging -( - @spid int, - @sql nvarchar(MAX), - @query_plan xml, - @guid_in uniqueidentifier, - @guid_out uniqueidentifier OUTPUT -) -WITH RECOMPILE -AS -BEGIN - -SET NOCOUNT, XACT_ABORT ON; -SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO /* @@ -37,6 +32,24 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. */ +CREATE OR ALTER PROCEDURE + dbo.logging +( + @spid int, + @sql nvarchar(MAX), + @query_plan xml, + @guid_in uniqueidentifier, + @guid_out uniqueidentifier OUTPUT +) +WITH RECOMPILE +AS +BEGIN + +SET STATISTICS XML OFF; +SET NOCOUNT ON; +SET XACT_ABORT OFF; +SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; + /*variables for the variable gods*/ DECLARE @run_hash uniqueidentifier = NEWID(), diff --git a/Helper Views/WhatsUpIndexes.sql b/Helper Views/WhatsUpIndexes.sql index 33a4405..0a3be53 100644 --- a/Helper Views/WhatsUpIndexes.sql +++ b/Helper Views/WhatsUpIndexes.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* This is a quick one-off script I use in some presentations to look at index sizes. diff --git a/Helper Views/WhatsUpLocks.sql b/Helper Views/WhatsUpLocks.sql index 15700f5..b7f85f2 100644 --- a/Helper Views/WhatsUpLocks.sql +++ b/Helper Views/WhatsUpLocks.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* This is a helper function I use in some of my presentations to look at locks taken. It's definitely not a replacements for sp_WhoIsActive, it just gives me what I care about at the moment. diff --git a/Helper Views/WhatsUpMemory.sql b/Helper Views/WhatsUpMemory.sql index 5ae9733..00d52db 100644 --- a/Helper Views/WhatsUpMemory.sql +++ b/Helper Views/WhatsUpMemory.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* This is a helper view I use in some of my presentations to look at what's in memory. I probably wouldn't run this in production, especially on servers with a lot of memory in them. diff --git a/Helper Views/tempdb_tester.sql b/Helper Views/tempdb_tester.sql index cf231e7..7cf968e 100644 --- a/Helper Views/tempdb_tester.sql +++ b/Helper Views/tempdb_tester.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* This generates some semi-random tempdb activity @@ -24,7 +35,9 @@ CREATE OR ALTER PROCEDURE WITH RECOMPILE AS BEGIN; - SET NOCOUNT, XACT_ABORT ON; + SET STATISTICS XML OFF; + SET NOCOUNT ON; + SET XACT_ABORT OFF; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; WITH x1 (n) AS diff --git a/Inline Financial Functions/EffectiveAnnualInterestRate.sql b/Inline Financial Functions/EffectiveAnnualInterestRate.sql index 1955343..05934ef 100644 --- a/Inline Financial Functions/EffectiveAnnualInterestRate.sql +++ b/Inline Financial Functions/EffectiveAnnualInterestRate.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.EffectiveAnnualInterestRate_Inline ( diff --git a/Inline Financial Functions/FutureValue.sql b/Inline Financial Functions/FutureValue.sql index 17b92b3..1b37df3 100644 --- a/Inline Financial Functions/FutureValue.sql +++ b/Inline Financial Functions/FutureValue.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.FutureValue_Inline ( diff --git a/Inline Financial Functions/InterestPayment.sql b/Inline Financial Functions/InterestPayment.sql index 931344b..d7b7b78 100644 --- a/Inline Financial Functions/InterestPayment.sql +++ b/Inline Financial Functions/InterestPayment.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.InterestPayment_Inline ( diff --git a/Inline Financial Functions/NumberOfPayments.sql b/Inline Financial Functions/NumberOfPayments.sql index 842b188..4c65bbb 100644 --- a/Inline Financial Functions/NumberOfPayments.sql +++ b/Inline Financial Functions/NumberOfPayments.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.NumberOfPayments_Inline ( diff --git a/Inline Financial Functions/NumberOfYears.sql b/Inline Financial Functions/NumberOfYears.sql index 16b67a7..8b5431c 100644 --- a/Inline Financial Functions/NumberOfYears.sql +++ b/Inline Financial Functions/NumberOfYears.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.NumberOfYears_Inline ( diff --git a/Inline Financial Functions/Payment.sql b/Inline Financial Functions/Payment.sql index 45d590c..7b17318 100644 --- a/Inline Financial Functions/Payment.sql +++ b/Inline Financial Functions/Payment.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.Payment_Inline ( diff --git a/Inline Financial Functions/PrincipalPayment.sql b/Inline Financial Functions/PrincipalPayment.sql index e692bfa..84aa841 100644 --- a/Inline Financial Functions/PrincipalPayment.sql +++ b/Inline Financial Functions/PrincipalPayment.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + CREATE OR ALTER FUNCTION dbo.PrincipalPayment_Inline ( diff --git a/Ola Stats Only Job/Ola Stats Only Job.sql b/Ola Stats Only Job/Ola Stats Only Job.sql index 350dbe7..3794e84 100644 --- a/Ola Stats Only Job/Ola Stats Only Job.sql +++ b/Ola Stats Only Job/Ola Stats Only Job.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* This script can be used to create a nightly statistics update job, utilizing Ola's IndexOptimize stored procedure. @@ -33,7 +44,6 @@ OTHER DEALINGS IN THE SOFTWARE. */ - USE msdb; GO diff --git a/sp_HealthParser/sp_HealthParser.sql b/sp_HealthParser/sp_HealthParser.sql index a69cd21..5c04860 100644 --- a/sp_HealthParser/sp_HealthParser.sql +++ b/sp_HealthParser/sp_HealthParser.sql @@ -4,6 +4,7 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO @@ -31,7 +32,13 @@ For support, head over to GitHub: https://github.com/erikdarlingdata/DarlingData */ -CREATE OR ALTER PROCEDURE +IF OBJECT_ID('dbo.sp_HealthParser') IS NULL + BEGIN + EXEC ('CREATE PROCEDURE dbo.sp_HealthParser AS RETURN 138;'); + END; +GO + +ALTER PROCEDURE dbo.sp_HealthParser ( @what_to_check varchar(10) = 'all', /*Specify which portion of the data to check*/ diff --git a/sp_HumanEvents/sp_HumanEvents.sql b/sp_HumanEvents/sp_HumanEvents.sql index 5d33f76..659994d 100644 --- a/sp_HumanEvents/sp_HumanEvents.sql +++ b/sp_HumanEvents/sp_HumanEvents.sql @@ -1,12 +1,13 @@ -SET ANSI_NULLS ON; -SET ANSI_PADDING ON; -SET ANSI_WARNINGS ON; -SET ARITHABORT ON; -SET CONCAT_NULL_YIELDS_NULL ON; -SET QUOTED_IDENTIFIER ON; +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; SET IMPLICIT_TRANSACTIONS OFF; -SET STATISTICS TIME, IO OFF; -GO +SET STATISTICS TIME, IO OFF; +GO /* ██╗ ██╗██╗ ██╗███╗ ███╗ █████╗ ███╗ ██╗ diff --git a/sp_HumanEvents/sp_HumanEventsBlockViewer.sql b/sp_HumanEvents/sp_HumanEventsBlockViewer.sql index 0cbc30a..94d4b51 100644 --- a/sp_HumanEvents/sp_HumanEventsBlockViewer.sql +++ b/sp_HumanEvents/sp_HumanEventsBlockViewer.sql @@ -4,6 +4,7 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO diff --git a/sp_LogHunter/sp_LogHunter.sql b/sp_LogHunter/sp_LogHunter.sql index 9c433a9..ff54f60 100644 --- a/sp_LogHunter/sp_LogHunter.sql +++ b/sp_LogHunter/sp_LogHunter.sql @@ -4,6 +4,7 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO @@ -41,7 +42,13 @@ EXEC sp_LogHunter; */ -CREATE OR ALTER PROCEDURE +IF OBJECT_ID('dbo.sp_LogHunter') IS NULL + BEGIN + EXEC ('CREATE PROCEDURE dbo.sp_LogHunter AS RETURN 138;'); + END; +GO + +ALTER PROCEDURE dbo.sp_LogHunter ( @days_back int = -7, /*How many days back you want to look in the error logs*/ diff --git a/sp_PressureDetector/sp_PressureDetector.sql b/sp_PressureDetector/sp_PressureDetector.sql index dd241cf..d737650 100644 --- a/sp_PressureDetector/sp_PressureDetector.sql +++ b/sp_PressureDetector/sp_PressureDetector.sql @@ -4,6 +4,7 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO diff --git a/sp_QuickieStore/sp_QuickieStore.sql b/sp_QuickieStore/sp_QuickieStore.sql index dee8e14..78c4292 100644 --- a/sp_QuickieStore/sp_QuickieStore.sql +++ b/sp_QuickieStore/sp_QuickieStore.sql @@ -4,6 +4,7 @@ SET ANSI_WARNINGS ON; SET ARITHABORT ON; SET CONCAT_NULL_YIELDS_NULL ON; SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; SET IMPLICIT_TRANSACTIONS OFF; SET STATISTICS TIME, IO OFF; GO @@ -44,7 +45,13 @@ https://github.com/erikdarlingdata/DarlingData */ -CREATE OR ALTER PROCEDURE +IF OBJECT_ID('dbo.sp_QuickieStore') IS NULL + BEGIN + EXEC ('CREATE PROCEDURE dbo.sp_QuickieStore AS RETURN 138;'); + END; +GO + +ALTER PROCEDURE dbo.sp_QuickieStore ( @database_name sysname = NULL, /*the name of the database you want to look at query store in*/ diff --git a/sp_WhoIsActive Logging/01 sp_WhoIsActive Logging Views.sql b/sp_WhoIsActive Logging/01 sp_WhoIsActive Logging Views.sql index b94aa47..f4e0370 100644 --- a/sp_WhoIsActive Logging/01 sp_WhoIsActive Logging Views.sql +++ b/sp_WhoIsActive Logging/01 sp_WhoIsActive Logging Views.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* Copyright 2023 Darling Data, LLC @@ -17,55 +28,64 @@ https://github.com/amachanic/sp_whoisactive SQL Agent has some weird settings. This sets them to the correct ones. */ -CREATE OR ALTER PROCEDURE + +IF OBJECT_ID('dbo.sp_WhoIsActiveLogging_CreateViews') IS NULL + BEGIN + EXEC ('CREATE PROCEDURE dbo.sp_WhoIsActiveLogging_CreateViews AS RETURN 138;'); + END; +GO + +ALTER PROCEDURE dbo.sp_WhoIsActiveLogging_CreateViews AS BEGIN - SET NOCOUNT, XACT_ABORT ON; - BEGIN - DECLARE - @vsql nvarchar(MAX) = N' - CREATE OR ALTER VIEW - dbo.WhoIsActive - AS - '; + SET STATISTICS XML OFF; + SET NOCOUNT ON; + SET XACT_ABORT OFF; + SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; - SELECT - @vsql += - ( - SELECT TOP (9223372036854775807) - [text()] = - N'SELECT * FROM ' + - QUOTENAME(SCHEMA_NAME(t.schema_id)) + - N'.' + - QUOTENAME(t.name) + - NCHAR(10) + - N'UNION ALL ' + - NCHAR(10) - FROM sys.tables AS t - WHERE t.name LIKE N'WhoIsActive[_][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%' - ORDER BY t.create_date DESC - FOR XML - PATH(N''), - TYPE - ).value - ( - './text()[1]', - 'nvarchar(max)' - ); + DECLARE + @vsql nvarchar(MAX) = N' + CREATE OR ALTER VIEW + dbo.WhoIsActive + AS + '; - SELECT - @vsql = - SUBSTRING - ( - @vsql, - 0, - LEN(@vsql) - 11 - ) + N';'; + SELECT + @vsql += + ( + SELECT TOP (9223372036854775807) + [text()] = + N'SELECT * FROM ' + + QUOTENAME(SCHEMA_NAME(t.schema_id)) + + N'.' + + QUOTENAME(t.name) + + NCHAR(10) + + N'UNION ALL ' + + NCHAR(10) + FROM sys.tables AS t + WHERE t.name LIKE N'WhoIsActive[_][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%' + ORDER BY t.create_date DESC + FOR XML + PATH(N''), + TYPE + ).value + ( + './text()[1]', + 'nvarchar(max)' + ); - EXEC sys.sp_executesql - @vsql; - END; + SELECT + @vsql = + SUBSTRING + ( + @vsql, + 0, + LEN(@vsql) - 11 + ) + N';'; + + EXEC sys.sp_executesql + @vsql; IF NOT EXISTS ( @@ -225,4 +245,5 @@ BEGIN EXEC sys.sp_executesql @sql; END; -END; \ No newline at end of file +END; +GO diff --git a/sp_WhoIsActive Logging/02 sp_WhoIsActiveLogging Main.sql b/sp_WhoIsActive Logging/02 sp_WhoIsActiveLogging Main.sql index 5eef7be..4610517 100644 --- a/sp_WhoIsActive Logging/02 sp_WhoIsActiveLogging Main.sql +++ b/sp_WhoIsActive Logging/02 sp_WhoIsActiveLogging Main.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* Copyright 2023 Darling Data, LLC @@ -18,8 +29,13 @@ sign that you need to update sp_WhoIsActive */ +IF OBJECT_ID('dbo.sp_WhoIsActiveLogging_Main') IS NULL + BEGIN + EXEC ('CREATE PROCEDURE dbo.sp_WhoIsActiveLogging_Main AS RETURN 138;'); + END; +GO -CREATE OR ALTER PROCEDURE +ALTER PROCEDURE dbo.sp_WhoIsActiveLogging_Main ( @RetentionPeriod int = 10 @@ -41,6 +57,8 @@ BEGIN QUOTED_IDENTIFIER ON; + SET NUMERIC_ROUNDABORT OFF; + /* Variables we know and love. diff --git a/sp_WhoIsActive Logging/03 sp_WhoIsActiveLogging_Retention.sql b/sp_WhoIsActive Logging/03 sp_WhoIsActiveLogging_Retention.sql index bd7c9b8..46095a6 100644 --- a/sp_WhoIsActive Logging/03 sp_WhoIsActiveLogging_Retention.sql +++ b/sp_WhoIsActive Logging/03 sp_WhoIsActiveLogging_Retention.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* Copyright 2023 Darling Data, LLC @@ -15,52 +26,62 @@ https://github.com/amachanic/sp_whoisactive SQL Agent has some weird settings. This sets them to the correct ones. */ -CREATE OR ALTER PROCEDURE + +IF OBJECT_ID('dbo.sp_WhoIsActiveLogging_Retention') IS NULL + BEGIN + EXEC ('CREATE PROCEDURE dbo.sp_WhoIsActiveLogging_Retention AS RETURN 138;'); + END; +GO + +ALTER PROCEDURE dbo.sp_WhoIsActiveLogging_Retention ( @RetentionPeriod integer = 10 ) AS BEGIN - SET NOCOUNT, XACT_ABORT ON; + SET STATISTICS XML OFF; + SET NOCOUNT ON; + SET XACT_ABORT OFF; + SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; + + IF EXISTS + ( + SELECT + 1/0 + FROM sys.tables AS t + WHERE t.name LIKE N'WhoIsActive[_][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%' + AND t.create_date < DATEADD(DAY, (@RetentionPeriod * -1), SYSDATETIME()) + ) BEGIN - IF EXISTS + DECLARE + @dsql nvarchar(MAX) = N''; + + SELECT + @dsql += ( - SELECT - 1/0 + SELECT TOP (9223372036854775807) + [text()] = + N'DROP TABLE ' + + QUOTENAME(SCHEMA_NAME(t.schema_id)) + + N'.' + + QUOTENAME(t.name) + + N';' FROM sys.tables AS t WHERE t.name LIKE N'WhoIsActive[_][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%' AND t.create_date < DATEADD(DAY, (@RetentionPeriod * -1), SYSDATETIME()) - ) - BEGIN - DECLARE - @dsql nvarchar(MAX) = N''; - - SELECT - @dsql += - ( - SELECT TOP (9223372036854775807) - [text()] = - N'DROP TABLE ' + - QUOTENAME(SCHEMA_NAME(t.schema_id)) + - N'.' + - QUOTENAME(t.name) + - N';' - FROM sys.tables AS t - WHERE t.name LIKE N'WhoIsActive[_][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%' - AND t.create_date < DATEADD(DAY, (@RetentionPeriod * -1), SYSDATETIME()) - ORDER BY t.create_date DESC - FOR XML - PATH(N''), - TYPE - ).value - ( - './text()[1]', - 'nvarchar(max)' - ); + ORDER BY t.create_date DESC + FOR XML + PATH(N''), + TYPE + ).value + ( + './text()[1]', + 'nvarchar(max)' + ); - EXEC sys.sp_executesql - @dsql; - END; + EXEC sys.sp_executesql + @dsql; END; -END; \ No newline at end of file +END; +GO diff --git a/sp_WhoIsActive Logging/04 sp_WhoIsActive Logging Agent Job.sql b/sp_WhoIsActive Logging/04 sp_WhoIsActive Logging Agent Job.sql index 057bc9e..e7e09b5 100644 --- a/sp_WhoIsActive Logging/04 sp_WhoIsActive Logging Agent Job.sql +++ b/sp_WhoIsActive Logging/04 sp_WhoIsActive Logging Agent Job.sql @@ -1,3 +1,14 @@ +SET ANSI_NULLS ON; +SET ANSI_PADDING ON; +SET ANSI_WARNINGS ON; +SET ARITHABORT ON; +SET CONCAT_NULL_YIELDS_NULL ON; +SET QUOTED_IDENTIFIER ON; +SET NUMERIC_ROUNDABORT OFF; +SET IMPLICIT_TRANSACTIONS OFF; +SET STATISTICS TIME, IO OFF; +GO + /* Copyright 2023 Darling Data, LLC