I need to find all the stored procs that use Transactions, as I want to enable transaction abort to those procedures. However, –I didn't do this; it's inherited– many of the stored procedures contain testing procedures with in comment blocks and most of the tests contain transaction blocks. I am only interested in changing stored procs that actually use transactions. AND I want to be able to monitor when stored procs are updated so that I can make sure that this flag is set.
SET XACT_ABORT ON;
Addendum: based on comments, here're some examples from my system.
/*
-- clean up after tests
BEGIN TRANSACTION
EXEC dbo.AR_Cleanup_MoveEqualAndOppositeSBPLiabilities
ROLLBACK TRANSACTION
*/
/*
Use case: 147
BEGIN TRANSACTION
....
*/
Best Answer
Here is a solution that I put together that worked, at least in my testing.
It relies on dbo.DelimitedSplit8K by Jeff Moden which you can find here https://www.sqlservercentral.com/articles/tally-oh-an-improved-sql-8k-%e2%80%9ccsv-splitter%e2%80%9d-function
You just need to change it to use sys.sql_modules to sub in for the procname and proccode portions.