database update while multiple servers are using this DB
Got this question from one of our developers: We have a SQL 2014 database which is used by 3 message servers (say server 1,2, and 3). No downtime is accepted, customers should always get a result from one of the message servers. If we deploy another version to this database by using Server 1 and the deployment contains a "DELETE COLUMN" statement, server 2 and 3 will stop working, because the deleted column is still in their (older) software. Updating all the servers at the same time violates the "no downtime accepted" rule... Any thoughts how to solve this problem? FYI: SQL2016 is already a version we're looking for (if this version has an answer)
This is one of those situations where you need to better control your development & release cycle, so that it follows the basic process: * make application aware that there are database changes coming, and they can handle (say) missing column * release that application * make schema changes * release version of application that is now fully compatible with your database It's a faff, but it's the proper way to do it. With a decent delivery mechanism (continuous delivery / continuous integration / whatever), and the right mental processes, it's OK. If you need help sorting this sort of thing out, that's beyond the limits of AskSSC - but there are specialists out there to help. I'll send one to this thread shortly... An alternative would be to wrap the table up in a view that includes the column that's been deleted (if you see what I mean) - and returns NULL, or an empty string, or whatever... but this is a kludge.