Placing an ASSERT in a SQL Server query
-
02-11-2019 - |
Question
As part of a MERGE
query that I want to run I'd like to assert at runtime that a certain condition holds. When a MERGE
-match is found I'd like to update a certain column and have the following logic executed:
- If the target column is
NULL
, write the source value - If the target is
NOT NULL
, assert that target and source are identical
I expect that the two values are always identical in case 2 but I might have made a mistake (have a bug). When that happens I'd like to crash the statement and let my app report the error. This is a very rare error condition, not something that can happen as part of usual processing.
So I was thinking that I could abuse a divide-by-zero exception to trigger a crash:
MERGE
...
WHEN MATCHED BY TARGET THEN UPDATE SET
TargetCol = CASE
WHEN TargetCol IS NULL THEN SourceCol
WHEN TargetCol = SourceCol THEN SourceCol
ELSE 0/0 END --crash!
Will this work reliably? Is there a reason this should not be done?
No correct solution
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange