i've been told by a dog trainer (she had given out some literature to the class, but it was a while ago and i'm no longer sure of its whereablouts) that one reason for animals getting sick when you switch their food, especially if it is one of the cheaper super-market brands, is that the meat meal used as a main ingredient tends to be from meat designated "not fit for human consumption", including diseased and decaying carcasses. in order that this food never be used for human consumption, it is first "denatured" in creosote, benzyne, or other toxic chemicals. so when you switch the dog from one brand to another, they get sick because they are used to the creosote in their normal brand, and not the formaldehyde in the new brand.
also, "meat meal" can contain carcasses from animal shelters, i.e. cats and dogs; and the chemical used to euthanize these animals is not affected by the rendering process that turns the carcasses into meal. this means that small amounts may be present in the final product, that is supposed to be fed to one's pets.
so don't skimp on the puppy! get a quality brand with no "meat meal" and the dog shouldn't have any puking problems when switching food.