title: SQL Server Compact - Schema Management
body: <p>I've been searching for some time for a good solution to implement the idea of managing schema on an <a href="http://en.wikipedia.org/wiki/SQL_Server_Compact" rel="nofollow noreferrer">SQL Server Compact</a> 3.5 database.</p>
  
  <p>I know of several ways of managing schema on <a href="http://en.wikipedia.org/wiki/SQL_Server_Express" rel="nofollow noreferrer">SQL Server Express</a>, SQL Server Standard, SQL Server Enterprise, but the Compact Edition doesn't support the necessary tools required to use the same methodology.</p>
  
  <p>Any suggestions/tips?</p>
  
  <hr>
  
  <p>I should expand this to say that it is for 100+ clients with wrapperware software.  As the system changes, I need to publish update scripts alongside the new binaries to the client.  I was looking for a decent method by which to publish this without having to just hand the client a script file and say "Run this in SSMSE".  Most clients are not capable of doing such a beast.</p>
  
  <p>A buddy of mine disclosed a partial script on how to handle the SQL Server piece of my task, but never worked on Compact Edition. It looks like I'll be on my own for this.</p>
  
  <p>What I think that I've decided to do, and it's going to need a "geek week" to accomplish, is to write some sort of a tool much like how <a href="http://en.wikipedia.org/wiki/WiX" rel="nofollow noreferrer">WiX</a> and <a href="http://en.wikipedia.org/wiki/NAnt" rel="nofollow noreferrer">NAnt</a> works, so that I can just write an overzealous XML document to handle the work.</p>
  
  <p>If I think that it is worthwhile, I'll publish it on CodePlex and/or <a href="http://en.wikipedia.org/wiki/The_Code_Project" rel="nofollow noreferrer">The Code Project</a> because I've used both sites a bit to gain better understanding of concepts for jobs I've done in the past, and I think it is probably worthwhile to give back a little.</p>
  
  <hr>
  
  <p>Edit on 5/3/2010:</p>
  
  <p>If someone is willing to "name" the project, I'll upload the dirty/nasty version that I've written for MS SQL to CodePlex so that maybe we can start hacking out a version of SQL Compact.  Although, I think with the next revision of the initial application that I was planning, I'm going to be abandoning SQL Compact and just use XML Files for storage, as the software is being converted from an Installable package to being a Silverlight application.  Silverlight just gives a better access strategy.</p>