• I've only used synonyms on a couple of occassions. In each case, there were rather involved procedures which accessed tables outside the database -- in one case even outside the server -- and needed to be deployed multiple times.

    In one instance, the first implementation used dynamic SQL to give the flexibility, so Synonyms were a huge advantage. Views would probably have worked, but would have required considerably more effort.

    A more recent system uses views extensively, in part to abstract location of remote files. New columns tend to require quite a few changes.

    It always seems like synonyms would be more useful if they could replace a portion of the object name instead of the entire name -- similar to an Envronment variable or logical name. Parsing would become harder, but it seems possible. It is common to access multiple objects from the same database or a parallel database on a different server.