• It seems this is a sql design "issue". Once a database is marked for replication ALL objects - whether or not they are replicated - call the sp_MSmerge_ddldispatcher procedure. This SP has an is_member('db_owner') check at the start so it fails if your not. There is a brief discussion on it here...

    http://www.sqldev.org/sql-server-replication/issue-with-modifying-sps-after-replicating-a-database-in-sql-server-2005-71178.shtml

    So it seems there are 2 options

    1) You dont give your devs alter permissions in live (probably already in place in larger corps)

    2) You let the devs know that the SP will amend but if its replicated then the schema change wont replicate

    I'm just going to go with option2 for now as we only replicate tables