title: How to migrate shared database from Access to SQL Express
body: <p>I have been using MS Access databases via DAO for many years, but feel that I ought to embrace newer techniques.</p>
  
  <p>My main application runs on end user PCs (no server) and uses a shared database that is created and updated on-the-fly.  When the application is first run it detects the absence of a database and creates a new empty one.</p>
  
  <p>Any local user running the application is allowed to add or update records in this shared database.  We have a couple of other shared databases, that contain templates, regional information, etc., but these are not updated directly by the application.</p>
  
  <p>Updates of the application are released from time to time and each new update checks the main database version and if necessary executes code to bring the database up to the latest specification.  This may involve the creation or deletion of tables and/or columns.  New copies of the template databases are also included as part of the update.</p>
  
  <p>Our users are not required to be computer-literate and should not need to run any sort of database management software beyond those facilities provided by the application.</p>
  
  <p>It all works very nicely with DAO/Access, but I'm struggling to find how to do it with SQL Express.  The databases seem to be squirrelled away in locations that are user-specific and database creation and update seems at best awkward to do by program code alone.</p>
  
  <p>I came across some references "Xcopy deployment" that looks like it could be promising, but there seem to be references to "user instances" that sound suspiciously like something that's not shared.  I'd appreciate advice from anyone who has done it. </p>