Introduction
I really enjoyed writing about SQL SERVER - 2005 - Create Script to Copy Database Schema and All The Objects - Stored Procedure, Functions, Triggers, Tables, Views, Constraints and All Other Database Objects. Since then, I have received questions about how to copy data as well along with schema. The answer to this is Database Publishing Wizard. This wizard is very flexible and works with modes like schema only, data only or both. It generates a single SQL script file which can be used to recreate the contents of a database by manually executing the script on a target server.
The pre-requisite for Database Publishing Wizard is .NET 2.0 Framework, SQL Server 2005 Management Objects, SMO. The Database Publishing Wizard will script all objects that the supplied User has permissions to see in the source database. Any objects created "WITH ENCRYPTION
" cannot be scripted. If such objects exist in the source database, the tool will not produce a script.
First of all, install Database Publishing Wizard: Download Database Publishing Wizard.
It will be installed at the following location: C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\.
Now login using Command prompt and run the following command on any desired database. It will create the script at your specified location. The script will have schema as well as data which can be used to create the same information on the new server.
Command to run which will create schema and database:
C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz
script -d AdventureWorks "C:\AdventureWorks.sql"
Command to run which will create schema:
C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz
script -d AdventureWorks "C:\AdventureWorks.sql" -schemaonly
Command to run which will create data:
C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz
script -d AdventureWorks "C:\AdventureWorks.sql" -dataonly
Command Windows will generate output of action it is taking. See the below two screen shots:
If you have followed this tutorial exactly, you will end up with adventurework.sql which will be quite big and if your computer is not powerful enough, it will hang your computer for a while. I suggest that you try this on a smaller database of a size of around 100MB.
Reference: Pinal Dave (http://www.SQLAuthority.com), Database Publishing Wizard
History
- 17th November, 2007: Initial post