title: Clone an existing database to a new database
body: <p>I'm struggling to find a suitable solution to this. I have a fairly large SQL Server 2008 Express database containing 60+ tables (many with key constraints) and a whole bunch of data.  </p>
  
  <p>I need to essentially copy all of these tables and the data and the constraints exactly from one database to another. I'm basically duplicating website A - to produce an exact copy (website B) on a different domain so we end up with two completely identical websites running in parallel, each with their own identical database to begin with.</p>
  
  <p>Database A is up and running on website A. Database B is set up and has it's own user. I just need to get the tables and the data intact from A to B. I can them modify my web.config connection to use the log-in credentials for database B and it should work.</p>
  
  <p>I've tried backing up database A and restoring to database B via Management Studio Express, but it tells me:</p>
  
  <blockquote>
    <p>System.Data.SqlClient.SqlError: The backup set holds a backup of a database other than the existing 'database-B' database.<br>
    (Microsoft.SqlServer.Smo)</p>
  </blockquote>
  
  <p>I've also tried right clicking database A in Management Studio Express and going to <code>Tasks &gt; Generate scripts</code>. But when I do this and run the SQL scripts on database B I get a whole load of errors to do with foreign keys etc as it imports the content. It seems like it's doing the right thing, but can't handle the different keys/relationships.</p>
  
  <p>So does anyone know of a simple, sure-fire way of getting my data 100% exact and intact from database A to database B?</p>
  
  <p>I think I used SQL Server Database Publishing Wizard to do something like this about 5 years ago, but that product seems to be defunct now - I tried to install it and it wanted me to regress my version of SQL Server to 2005, so I'm not going there!</p>