C'est bien simple : logiquement, il ne doit pas faire de modifs sur la base sans te prévenir, puisqu'à priori c'est toi qui gère l'application qui utilise la base.
Si au contraire, ton appli se greffe sur une autre appli qui gère la base, alors tu ne dois pas modifier la base du client : tu dois en créer une seconde, et travailler avec des DBLINK afin de la lier au modèle existant (en travaillant avec des vues et autres objets dynamiques, tu peux rendre la chose totalement transparante).
Je pars du principe donc que c'est toi et toi seul qui gère le modèle de la base. A ce moment, tu dois avoir chez toi au moins trois bases de données différentes :
- Une copie de la base actuellement en production chez le client. Tu appliqueras dessus tes différents patchs au moment de la livraison.
- Une version de développement de la base : la base dans laquelle tu travailles.
- Une version de test, qui te permet de valider tes patches avant l'envoi au client, ainsi que valider le fonctionnement de l'application avant la mise en production.
Pour récupérer une version de la base du client, rien de plus simple : SQL Server dispose d'une GUI simplissime pour faire un backup d'une base. Backup la base en ne prenant que le modèle et les infos, mais pas les profils utilisateurs ni les utilisateurs. Il ne te reste plus qu'à restaurer ce backup sur ton serveur de développement.