We have one server with multiple Sq Server 2008 R2 instances installed. To support an application we need to upgrade to one instance to SP2. Can we only apply the service pack to the specific instance on the server, or would it have to be applied to all of the instances on the server?
Yes, you can choose which instance(s) you wish to apply the service pack. They'll all be checked by default; as will the client tools / shared features (there is only one "instance" of those):
You can re-run the installer later to update any that you didn't update this time; the ones that are already at SP2 will not be selectable.
On this VM, I have 2008 R2 RTM (no patches whatsoever) and 2008 R2 with Service Pack 2 and SP2 CU9 installed and running side by side with no issues:
Now, why you want to have a mix of patched and unpatched instances on a single server might be a different question...
Zachary, you'd better test this ASAP or only accept the answer of a long time poster; if the SP installs 'shared components' then it'll affect the entire instance. If it doesn't, then you're allright.
Best way to do this is to install 2 instances on a test machine, it could even be your own, then attempt to apply SP2 to it and then do a SELECT @@VERSION. That'll tell you if the instance upgraded.