Nu cred că replicarea este ceea ce îţi doreşti, pentru că aceasta se aplică în primul rând pentru date.
Eu abordez această problemă făcând script-uri pentru toate modificările bazelor de date şi aplicând aceste script-uri pe rând, în funcţie de "versiunea" bazei de date de la client. Mai precis, am o tabelă în care scriu versiunea bazei de date, iar atunci când fac o actualizare, fac un backup înainte, aplic script-ul respectiv (care modifică structurile tabelelor, modifică şi crează alte view-uri, proceduri, etc, apoi incrementează versiunea bazei de date), iar dacă a apărut o eroare la aplicarea script-ului fac restore din backup (atât timp cât fac actualizările, baza de date e în modul single-user).
O altă soluţie de a automatiza acest proces este Red-gate SQL Packager.
Răzvan