Skip to content

Commit d75a5da

Browse files
committed
Enhance SQL Agent alert configurations to utilize MessageId with RAISERROR for better error handling
1 parent 6d1226d commit d75a5da

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

tests/Integration/Resources/DSC_SqlAgentAlert.config.ps1

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ Configuration DSC_SqlAgentAlert_ChangeToMessageId_Config
7575
Id = 'CreateCustomMessage'
7676
InstanceName = $Node.InstanceName
7777
ServerName = $Node.ServerName
78+
# cSpell: ignore addmessage msgnum msgtext
7879
SetQuery = "
7980
IF NOT EXISTS (SELECT 1 FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033)
8081
BEGIN
@@ -85,8 +86,17 @@ Configuration DSC_SqlAgentAlert_ChangeToMessageId_Config
8586
@lang = 'us_english'
8687
END
8788
"
88-
TestQuery = "SELECT 1 FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033"
89-
GetQuery = "SELECT message_id, text FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033"
89+
TestQuery = "
90+
IF NOT EXISTS (SELECT 1 FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033)
91+
BEGIN
92+
RAISERROR ('Did not found message id [$($Node.MessageId)]', 16, 1)
93+
END
94+
ELSE
95+
BEGIN
96+
PRINT 'Found a message id [$($Node.MessageId)]'
97+
END
98+
"
99+
GetQuery = "SELECT message_id, text FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033 FOR JSON AUTO"
90100

91101
PsDscRunAsCredential = New-Object `
92102
-TypeName System.Management.Automation.PSCredential `
@@ -138,6 +148,7 @@ Configuration DSC_SqlAgentAlert_Remove_Config
138148
Id = 'RemoveCustomMessage'
139149
InstanceName = $Node.InstanceName
140150
ServerName = $Node.ServerName
151+
# cSpell: ignore dropmessage
141152
SetQuery = "
142153
IF EXISTS (SELECT 1 FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033)
143154
BEGIN
@@ -146,8 +157,17 @@ Configuration DSC_SqlAgentAlert_Remove_Config
146157
@lang = 'us_english'
147158
END
148159
"
149-
TestQuery = "SELECT CASE WHEN NOT EXISTS (SELECT 1 FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033) THEN 1 ELSE 0 END AS MessageRemoved"
150-
GetQuery = "SELECT COUNT(*) as MessageCount FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033"
160+
TestQuery = "
161+
IF EXISTS (SELECT 1 FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033)
162+
BEGIN
163+
RAISERROR ('Found message id [$($Node.MessageId)]', 16, 1)
164+
END
165+
ELSE
166+
BEGIN
167+
PRINT 'Did not found a message id [$($Node.MessageId)]'
168+
END
169+
"
170+
GetQuery = "SELECT message_id, text FROM sys.messages WHERE message_id = $($Node.MessageId) AND language_id = 1033 FOR JSON AUTO"
151171

152172
PsDscRunAsCredential = New-Object `
153173
-TypeName System.Management.Automation.PSCredential `

0 commit comments

Comments
 (0)