• For those who are looking for an easier way out, I put together this sql that (hopefully) will identify the views that are older than the last table modify date, and call for only them to be refreshed. I also added the schema name, because not everything is always "DBO". Someone could wrap this in a cursor and execute directly, say every night, or after each prod release, to ensure that no views were missed:

    SELECT DISTINCT 'EXEC sp_refreshview ''' + OBJECT_SCHEMA_NAME(v.object_id) + '.' + v.name + ''''

    --, reference=OBJECT_SCHEMA_NAME(sed.referenced_major_id) + '.' + OBJECT_NAME(sed.referenced_major_id)

    --, t.modify_date, v.modify_date,*

    FROM sys.objects v

    INNER JOIN sys.sql_dependencies sed ON sed.object_id = v.object_id

    INNER JOIN sys.objects t ON t.object_id = sed.referenced_major_id

    WHERE v.type = 'V' --AND OBJECT_NAME(sed.referenced_major_id) LIKE 'MyTable%'

    and t.modify_date >= v.modify_date

    order by 1