Question

Is there an equivalent schema & data export/dumping tool for SQL Server as there is for MySQL with mysqldump. Trying to relocate a legacy ASP site and I am way out of happy place with working on a windows server.

Note: The DTS export utility own seems to export data, without table defs. Using the Enterprise Manager and exporting the db gets closer with exporting the schema & data... but still misses stored procedures.

Basically looking for a one does it all solution that grabs everything I need at once.

Was it helpful?

Solution

The easiest way is the sql server database publishing wizard.

  • Open source
  • Free
  • Does exactly what you want
  • Developed by microsoft

It does not have all the features of mysqldump but it is close enough.

http://www.codeplex.com/sqlhost/wiki/view.aspx?title=database%20publishing%20wizard

OTHER TIPS

To do this really easily with SQL Server 2008 Management Studio:

1.) Right click on the database (not the table) and select Tasks -> Generate Scripts

location of tool

2.) Click Next on the first page

3.) If you want to copy the whole database, just click next. If you want to copy specific tables, click on "Select Specific Database Objects", select the tables you want, and then click next.

4.) "Save to File" should be selected. IMPORTANT: Click the Advanced button next to "Save to File", find "Types of data to script", and change "Schema only" to "Schema and data" (if you want to create the table) or "Data only" (if you're copying data to an existing table).

adding data to the script

5.) Click through the rest and you're done! It will save as a .sql file.

The easiest way to move a Database would be to use SQL Server Management Studio to Export the database to another server, or if that doesn't work, make a backup like other's had suggested and restore it elsewhere.

If you are looking for a way to dump the table structure to SQL as well as create insert scripts for the data a good free option would be to use amScript and amInsert from http://www.asql.biz/en/Download2005.aspx.

If you want a good pay version I would check out Red-Gate SQL Compare and Red-Gate SQL-Data Compare. These tools are probably overkill though and probably a bit pricey if you don't intend to use them a lot. I would think it would mostly be relegated to DBAs. You can look at the Red-Gate tools at http://www.red-gate.com/.

Not finding the right tool, I decided to create my own: a sqlserverdump command line utility. Check it out on http://sqlserverdump.codeplex.com/.

Even easier is to use the SMO API. It lets you do exactly like mysqldump, and even better. Here is a code example:

http://samyem.blogspot.com/2010/01/automate-sql-dumps-for-sqlserver.html

Well, Mysqldump is a series of SQL statements. You can do this with DTS, but why not just create a backup and restore it on your new machine?

If you want to do it via SQL: http://msdn.microsoft.com/en-us/library/aa225964(SQL.80).aspx

Or just right click the DB and hit Tasks -> Backup (http://msdn.microsoft.com/en-us/library/ms187510.aspx)

easiest would be a backup and restore or detach and attach

or script out all the tables and BCP out the data then BCP in the data on the new server

or use DTS/SSIS to do this

SQL Enterprise manager or SQL Server Management studio have wizard based approaches, and the latter will generate the scripts so you can see how its done.

You could also use the BACKUP and RESTORE commands. More detail here: http://msdn.microsoft.com/en-us/library/ms189826.aspx

If you can get DTS or Integration Services to connect to both servers, you can use the wizards to 'copy objects' from one server to another. 'Copy Database' requires that the two servers can authenticate with each other, which typically means being on the same domain and that the service runs under a domain logon.

Otherwise, you can generate a script for the schema, and you can use an Integration Services/DTS package to export data to a file, then import it on the other.

We now generally use SQL Compare and SQL Data Compare. Red Gate's SQL Packager might also be an option.

Two things a backup/restore won't do:

  1. Get off of a Microsoft server, which was part of the original question
  2. Help quickly find a structural difference between two DBs that are supposed to have the same structure when one of them is running slowly. Unix diff, or sdiff, ignoring white space but need a way to make input files.

If you need equivalent SQL statements like CREATE TABLE... & INSERT INTO..., then I recommend you try HeidiSQL. It's a fantastic and free utility that can access Microsoft SQL Server, MySQL and PostgreSQL. It enables you to browse and edit data, create and edit tables, views, procedures, triggers and scheduled events. Also, you can export structure and data to SQL file. http://www.heidisql.com

Go to Tools / Export database as SQL and select the schema. Check the box to create the tables and “Insert” data. That’s it.

I prefer HeidiSQL to "Microsoft SQL Server Management Studio" or phpMyAdmin... etc.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top