Quick little post here, but not every CRM developer is a SQL developer and sometimes errors that come through the CRM interface aren’t actually CRM errors at all. A great example of this came my way during a deployment when I was importing some customizations. Now normally that’s my “push and pray” moment. Fortunately I have to pray less these days thanks to Hyper-V (take snapshot, got problems? revert and you’re A-OK – gotta love it!), but back to the story. So, I pressed the button and didn’t get the “all clear” from CRM. Uh-oh. Instead I got an error message that baffled me for a minute.
Cannot alter the table 'accountExtensionBase' because it is being used for replication.
What? There’s some replication in CRM that I didn’t know about? Then I thought for a second. This isn’t CRM at all. This was in fact an error message brought back from SQL who wasn’t happy about the fact that I was changing the schema of a table that it was replicating. For the CRM developers out there who aren’t familiar with SQL, it’s best said by the MSDN library:
Replication is a set of technologies for copying and distributing data and database objects from one database to another and then synchronizing between databases to maintain consistency.
Basically we use it to make sure that when changes are made we save the changes to another server almost real-time. This can save our behinds should something really bad happen. You can find more detail about the error here.
To solve this problem, it was a simple matter of tearing down replication, importing again, and replication could be setup again. Hopefully this helps anyone else who gets caught off guard by this message.