• I'm not aware of any way to do this through DMVs. A number of other options present themselves, but all are going to be a lot more work than just querying for the existing data.

    1) Get your objects in source control. This is a good practice anyway. If you do database development the way you do app development and nothing exists on the database unless it's in source control, you can easily generate a report of what changes were made over the last day.

    2) Script out a copy of the database each day and then compare the objects to the previous day.

    3) Set up triggers on the database to capture when DDL commands are send and write those out to a log somewhere.

    4) Set up extended events to capture the changes and write those out to a file from which you can build your report.

    5) Get a third party tool (like Redgate SQL Compare) that can compare between a backup, a script, or source control, and your database to arrive at the changes.

    Personally, the first option is the best since this is something that ought be done through a solid development process anyway.

    "The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
    - Theodore Roosevelt

    Author of:
    SQL Server Execution Plans
    SQL Server Query Performance Tuning