Skip to content

Commit 889b6ca

Browse files
author
Kevin Martin
committed
changed style to indent control flow
1 parent b90e6db commit 889b6ca

File tree

2 files changed

+163
-85
lines changed

2 files changed

+163
-85
lines changed

Development Application Settings/Red Gate/SQL Prompt/Formatting Styles/Team Expanded.sqlpromptstylev2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
<InValuesOpeningParenthesisAlignment>ToStatement</InValuesOpeningParenthesisAlignment>
5757
<InValuesOpeningParenthesisBreakType>Never</InValuesOpeningParenthesisBreakType>
5858
<InValuesSubsequentListItemsBreakType>SimpleWrap</InValuesSubsequentListItemsBreakType>
59-
<IndentBeginEndKeywords>false</IndentBeginEndKeywords>
59+
<IndentBeginEndKeywords>true</IndentBeginEndKeywords>
6060
<IndentBlockContents>true</IndentBlockContents>
6161
<IndentCteContents>true</IndentCteContents>
6262
<IndentCteName>false</IndentCteName>
@@ -75,7 +75,7 @@
7575
<JoinConditionBreakType>Never</JoinConditionBreakType>
7676
<JoinOnAlignment>TabbedFromJoin</JoinOnAlignment>
7777
<JoinOnConditionAlignment>ToOnKeyword</JoinOnConditionAlignment>
78-
<Name>Emergent Style - Expanded</Name>
78+
<Name>Team Expanded</Name>
7979
<NewLineAfterTopRowFilter>true</NewLineAfterTopRowFilter>
8080
<NewLineBeforeTopRowFilter>false</NewLineBeforeTopRowFilter>
8181
<NewLineForCorrelatedTableSource>true</NewLineForCorrelatedTableSource>

sp_Develop.sql

Lines changed: 161 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ CREATE OR ALTER PROCEDURE dbo.sp_Develop
3131
,@GetAllDatabases BIT = 0
3232
,@IgnoreDatabases NVARCHAR(MAX) = NULL /* Comma-delimited list of databases you want to skip */
3333
,@BringThePain BIT = 0
34-
,@IgnoreCheckIds NVARCHAR(MAX) = NULL /* Comma-delimited list of check ids you want to skip */
34+
--,@IgnoreCheckIds NVARCHAR(MAX) = NULL /* Comma-delimited list of check ids you want to skip */
35+
,@SkipChecksServer NVARCHAR(256) = NULL
36+
,@SkipChecksDatabase NVARCHAR(256) = NULL
37+
,@SkipChecksSchema NVARCHAR(256) = NULL
38+
,@SkipChecksTable NVARCHAR(256) = NULL
3539
,@ShowRememberChecks BIT = 0
3640
,@OutputType VARCHAR(20) = 'TABLE'
3741
,@OutputXMLasNVARCHAR BIT = 0
@@ -124,57 +128,76 @@ RETURN 0;
124128

125129
IF OBJECT_ID('tempdb..#SkipChecks') IS NOT NULL DROP TABLE #SkipChecks;
126130
CREATE TABLE #SkipChecks (
127-
CheckId INT NOT NULL
131+
ServerName NVARCHAR(128) NULL
128132
,DatabaseName NVARCHAR(128) NULL
129-
,ServerName NVARCHAR(128) NULL
133+
,ObjectName NVARCHAR(256) NULL
134+
,CheckId INT NULL
130135
);
131136
CREATE CLUSTERED INDEX CheckId_DatabaseName
132137
ON #SkipChecks (CheckId, DatabaseName);
133138

134139
/**********************************************************************************************************************
135-
** What checks are we going to perform?
136-
**********************************************************************************************************************/
137-
IF @IgnoreCheckIds IS NOT NULL
138-
AND LEN(@IgnoreCheckIds) > 0
140+
** Skip Checks
141+
** You can build your own table with a list of checks to skip.
142+
** [TODO: LINK TO README.md for instructions]
143+
**********************************************************************************************************************/
144+
IF @SkipChecksTable IS NOT NULL
145+
AND @SkipChecksSchema IS NOT NULL
146+
AND @SkipChecksDatabase IS NOT NULL
139147
BEGIN
140-
IF @Debug IN (1, 2)
141-
RAISERROR(N'Setting up filter to ignore databases', 0, 1) WITH NOWAIT;
142-
143-
SET @ChecksToIgnore = N'';
144148

145-
/* Do not use STRING_SPLIT(), we want this to work in SQL Servers before 2016 */
146-
WHILE LEN(@IgnoreCheckIds) > 0
147-
BEGIN
148-
IF PATINDEX('%,%', @IgnoreCheckIds) > 0
149-
BEGIN
150-
SET @ChecksToIgnore = SUBSTRING(@IgnoreCheckIds, 0, PATINDEX('%,%', @IgnoreCheckIds));
149+
IF @Debug IN (1, 2) RAISERROR('Inserting SkipChecks', 0, 1) WITH NOWAIT;
151150

152-
INSERT INTO
153-
#SkipChecks (CheckId, DatabaseName, ServerName)
151+
SET @StringToExecute = N'
152+
INSERT INTO
153+
#SkipChecks(ServerName, DatabaseName, ObjectName, CheckId)
154154
SELECT
155-
CheckId = LTRIM(RTRIM(@ChecksToIgnore))
156-
,DatabaseName = NULL
157-
,ServerName = NULL
158-
OPTION (RECOMPILE);
155+
ServerName
156+
,DatabaseName
157+
,ObjectName
158+
,CheckId
159+
FROM ';
159160

160-
SET @IgnoreCheckIds = SUBSTRING(@IgnoreCheckIds, LEN(@ChecksToIgnore + ',') + 1, LEN(@IgnoreCheckIds));
161-
END;
162-
ELSE
163-
BEGIN
164-
SET @ChecksToIgnore = @IgnoreCheckIds;
165-
SET @IgnoreCheckIds = NULL;
161+
IF LTRIM(RTRIM(@SkipChecksServer)) <> ''
162+
BEGIN
163+
SET @StringToExecute += QUOTENAME(@SkipChecksServer) + N'.';
164+
END;
166165

167-
INSERT INTO
168-
#SkipChecks (CheckId, DatabaseName, ServerName)
169-
SELECT
170-
CheckId = LTRIM(RTRIM(@ChecksToIgnore))
171-
,DatabaseName = NULL
172-
,ServerName = NULL
173-
OPTION (RECOMPILE);
174-
END;
166+
SET @StringToExecute += QUOTENAME(@SkipChecksDatabase) + N'.' + QUOTENAME(@SkipChecksSchema) + N'.' + QUOTENAME(@SkipChecksTable) + N'
167+
WHERE
168+
ServerName IS NULL
169+
OR ServerName = SERVERPROPERTY(''ServerName'')
170+
GROUP BY
171+
ServerName
172+
,DatabaseName
173+
,ObjectName
174+
,CheckId
175+
OPTION (RECOMPILE);';
176+
177+
EXEC sys.sp_executesql @stmt = @StringToExecute;
178+
IF @Debug = 2 AND @StringToExecute IS NOT NULL PRINT @StringToExecute;
179+
180+
/* Check if we should be running checks on this server, exit out if not. */
181+
IF EXISTS (
182+
SELECT
183+
*
184+
FROM
185+
#SkipChecks AS SC
186+
WHERE
187+
SC.ServerName = SERVERPROPERTY('ServerName')
188+
AND SC.DatabaseName IS NULL
189+
AND SC.ObjectName IS NULL
190+
)
191+
BEGIN
192+
IF @Debug IN (1, 2)
193+
RAISERROR('The SQL Server is marked to be skipped', 0, 1) WITH NOWAIT;
194+
RETURN 0;
175195
END;
176-
END;
177196

197+
IF @Debug IN (1, 2)
198+
RAISERROR('The SQL Server is not marked to be skipped', 0, 1) WITH NOWAIT;
199+
200+
END;
178201

179202
/**********************************************************************************************************************
180203
** Skip checks for specific SQL Servers
@@ -325,59 +348,114 @@ RETURN 0;
325348
END;
326349
END;
327350

328-
IF @IgnoreDatabases IS NOT NULL
329-
AND LEN(@IgnoreDatabases) > 0
330-
BEGIN
331-
IF @Debug IN (1, 2)
332-
RAISERROR(N'Setting up filter to ignore databases', 0, 1) WITH NOWAIT;
351+
--yyyyyyy
352+
353+
SELECT * FROM #SkipChecks AS SC;
354+
355+
356+
357+
RETURN 0; --TODO: remove me after testing
358+
359+
360+
361+
362+
333363

334-
SET @DatabaseToIgnore = N'';
335364

336-
WHILE LEN(@IgnoreDatabases) > 0
337-
BEGIN
338-
IF PATINDEX('%,%', @IgnoreDatabases) > 0
339-
BEGIN
340-
SET @DatabaseToIgnore = SUBSTRING(@IgnoreDatabases, 0, PATINDEX('%,%', @IgnoreDatabases));
341-
342-
INSERT INTO
343-
#Ignore_Databases (DatabaseName, Reason)
344-
SELECT
345-
LTRIM(RTRIM(@DatabaseToIgnore))
346-
,'Specified in the @IgnoreDatabases parameter'
347-
OPTION (RECOMPILE);
348-
349-
SET @IgnoreDatabases = SUBSTRING(@IgnoreDatabases, LEN(@DatabaseToIgnore + ',') + 1, LEN(@IgnoreDatabases));
350-
END;
351-
ELSE
352-
BEGIN
353-
SET @DatabaseToIgnore = @IgnoreDatabases;
354-
SET @IgnoreDatabases = NULL;
355-
356-
INSERT INTO
357-
#Ignore_Databases (DatabaseName, Reason)
358-
SELECT
359-
LTRIM(RTRIM(@DatabaseToIgnore))
360-
,'Specified in the @IgnoreDatabases parameter'
361-
OPTION (RECOMPILE);
362-
END;
363-
END;
364-
END;
365+
366+
367+
368+
369+
370+
371+
372+
373+
374+
375+
--IF @IgnoreDatabases IS NOT NULL
376+
-- AND LEN(@IgnoreDatabases) > 0
377+
--BEGIN
378+
-- IF @Debug IN (1, 2)
379+
-- RAISERROR(N'Setting up filter to ignore databases', 0, 1) WITH NOWAIT;
380+
381+
-- SET @DatabaseToIgnore = N'';
382+
383+
-- WHILE LEN(@IgnoreDatabases) > 0
384+
-- BEGIN
385+
-- IF PATINDEX('%,%', @IgnoreDatabases) > 0
386+
-- BEGIN
387+
-- SET @DatabaseToIgnore = SUBSTRING(@IgnoreDatabases, 0, PATINDEX('%,%', @IgnoreDatabases));
388+
389+
-- INSERT INTO
390+
-- #Ignore_Databases (DatabaseName, Reason)
391+
-- SELECT
392+
-- LTRIM(RTRIM(@DatabaseToIgnore))
393+
-- ,'Specified in the @IgnoreDatabases parameter'
394+
-- OPTION (RECOMPILE);
395+
396+
-- SET @IgnoreDatabases = SUBSTRING(@IgnoreDatabases, LEN(@DatabaseToIgnore + ',') + 1, LEN(@IgnoreDatabases));
397+
-- END;
398+
-- ELSE
399+
-- BEGIN
400+
-- SET @DatabaseToIgnore = @IgnoreDatabases;
401+
-- SET @IgnoreDatabases = NULL;
402+
403+
-- INSERT INTO
404+
-- #Ignore_Databases (DatabaseName, Reason)
405+
-- SELECT
406+
-- LTRIM(RTRIM(@DatabaseToIgnore))
407+
-- ,'Specified in the @IgnoreDatabases parameter'
408+
-- OPTION (RECOMPILE);
409+
-- END;
410+
-- END;
411+
--END;
365412

366413
END;
367414
ELSE
368415
BEGIN
369-
INSERT INTO
370-
#DatabaseList (DatabaseName)
371-
SELECT
372-
CASE
373-
WHEN @DatabaseName IS NULL
374-
OR @DatabaseName = N'' THEN
375-
DB_NAME()
376-
ELSE
377-
@DatabaseName
378-
END;
416+
417+
--zzzzzz
418+
419+
--SELECT * FROM #SkipChecks AS SC
420+
421+
IF EXISTS (
422+
SELECT
423+
*
424+
FROM
425+
#SkipChecks AS SC
426+
WHERE
427+
(SC.ServerName = SERVERPROPERTY('ServerName') OR SC.ServerName IS NULL)
428+
AND SC.DatabaseName = DB_NAME()
429+
AND SC.CheckId IS NULL
430+
)
431+
BEGIN
432+
IF @Debug IN (1, 2)
433+
RAISERROR('The database is marked to be skipped', 0, 1) WITH NOWAIT;
434+
RETURN 0;
435+
436+
END;
437+
ELSE
438+
BEGIN
439+
INSERT INTO
440+
#DatabaseList (DatabaseName)
441+
SELECT
442+
CASE
443+
WHEN @DatabaseName IS NULL
444+
OR @DatabaseName = N'' THEN
445+
DB_NAME()
446+
ELSE
447+
@DatabaseName
448+
END;
449+
END;
450+
451+
379452
END;
380453

454+
455+
456+
457+
458+
381459
SET @NumDatabases = (SELECT COUNT(*)FROM #DatabaseList);
382460
SET @Message = N'Number of databases to examine: ' + CAST(@NumDatabases AS NVARCHAR(50));
383461
IF @Debug IN (1, 2) RAISERROR(@Message, 0, 1) WITH NOWAIT;

0 commit comments

Comments
 (0)