3 suggestions to consider for SQL Server:
- A somewhat related, but indirect way might be to alert whenever the execution plan changes for a query. See "Custom Alert - Execution Plan Changed for SQL"
- You could create a DDL Trigger and insert information into a table that you could then query in the custom alert.
- An older article (may need to update queries) on how to detect DDL and/or DML changes has several suggestions. The best for DDL is toward the end either leveraging the tracefile or querying sys.objects and sys.schemas. Then wrap one of those queries into a custom alert.
You can detect any ddl changes by using trace file. below is script to get changes.
te.name AS eventtype
SELECT TOP 1
WHERE property = 2
INNER JOIN sys.trace_events as te
ON t.eventclass = te.trace_event_id
You can detect any modification on table and stored procedure using this script:
FROM sys.objects AS SO
INNER JOIN sys.schemas AS SS
ON SS.schema_id = SO.schema_id
WHERE DATEDIFF(D,modify_date, GETDATE()) < 50
AND TYPE IN ('P','U')
Additional queries and event id definitions to further customize what object changes you are interested in can be found in Pinal Dave's blog in the link "SQL SERVER - Who Dropped Table or Database? - SQL Authority with Pinal Dave"