title: Visual Studio Database Project and SQL Azure
body: <p>I'm really struggling with the best approach for managing a SQL Azure database which is based on a Visual Studio 2010 Database Project. I figured it would be easy enough to use VSDBCMD to create diff scripts for upgrades and then simply run against SQL Azure in SSMS. However, I get the dreaded "The target database schema provider could not be determined.  Deployment cannot continue." error.</p>
  
  <p>At this point I'm just assuming either SQL Azure doesn't support something in VSDBCMD or vice versa and I'm looking at other approaches. Here's the approach I'm currently considering:</p>
  
  <ol>
  <li>Script my SQL Azure database from SSMS using the Azure database engine setting.</li>
  <li>Create a tempory local database from script in step 1.</li>
  <li>Use VSDBCMD to create my delta script against the local database from step 2.</li>
  <li>Review/modify the script from step 3.</li>
  <li>Run script from step 3/4 against SQL Azure in SSMS.</li>
  </ol>
  
  <p>Good, bad? Any other ideas?</p>
  
  <p><strong>EDIT</strong>: I updated to Visual Studio 2010 SP1 today and found that there is a new database schema provider in Microsoft.Data.Schema.Sql.dll: SqlAzureDatabaseSchemaProvider. However, I cannot determine how to actually use this bad boy. Now when I try the same VSDBCMD script against an Azure database, I get:</p>
  
  <blockquote>
    <p>The source database schema provider Sql100DatabaseSchemaProvider could not be translated to provider SqlAzureDatabaseSchemaProvider. Deployment cannot continue.</p>
  </blockquote>
  
  <p>I also tried using the Sql90 provider with the same outcome. I even manually edited the dbproj file and changed the DSP property to SqlAzureDatabaseSchemaProvider. When I reload the project I get:</p>
  
  <blockquote>
    <p>The database schema provider must provide an implementation of DataGenerationServices.</p>
  </blockquote>
  
  <p>Has anyone tried this with VS 2010 SP1?</p>