• The people that I know doing this with a VCS, write code in an idempotent where. There is a wrapper to check for the job and create/alter it. They often have hand written scripts that execute fully from SQLCMD. The ideal way is to ensure you have a process that can build these so that people know if they drop a set of files in a folder, the process will execute them on the correct server.

    Depending on how environment specific you have to be, perhaps you want to try and store that environment stuff on the instance itself, rather than worrying about changing scripts.