Kopiera data från SQL2000 till SQL2005 med BCP

När jag skrev om hur jag installerade SQL Server Express SP2 berättade jag att det var BCP-verktyget som jag ville ha. Det visade sig vara väldigt användbart även ifall syntaxen är rätt så krånglig att lära sig.

Nu tänkte jag göra en snabb genomgång för några av de kommandon som jag har lyckats använda och även hur jag har kopierat data från SQL Server 2000 till min lokala instans av SQL Server 2005 Express. De flesta av exemplen körs i en cmd-promt.

Exempel på kommandon

Först ett användbart kommando för att se om man kommer åt databaskopplingen.

sqlcmd -Slocalhost\SQLExpress

Sen går vi in på själva bcp-kommandona, en referens för syntaxen finns på MSDN.

Skapa en format fil som bara innehåller databasstruktur och inga data.

bcp MittDatabasNamn.dbo.MinTabell format -c -f"c:\MinFormatfil.txt" -Slocalhost\SQLExpress -T -w

Kopiera en tabell till fil.

bcp MittDatabasNamn.dbo.MinTabell out "c:\Lagringsfil.txt" -Slocalhost\SQLExpress -T -N

För att kopiera data från en fil till tabell används "in" istället för "out", så här:

bcp MittDatabasNamn.dbo.MinTabell in "c:\Lagringsfil.txt" -Slocalhost\SQLExpress -T -N

Kopiera data från SQL 2000 till SQL 2005

Med hjälp av dessa kommandon lyckades jag exportera data från SQL Server 2000 och sedan importera dem till min lokala instans, här kommer stegen jag genomförde.

1. Först skapade jag en textfil lokalt med bcp-kommandot. Denna behövde jag ha som en mall för att klistra in innehållet ur textfilen som kommer från exportdatabasen på SQL 2000. Det gick inte att kopiera denna fil direkt eftersom jag då fick ett fel som sa något som "ett ogiltigt filslutstecken <EOF> påträffades i BCP-datafilen".

2. Jag kunde inte använda bcp från cmd-promten på vår Windows2003-server men hittade en annan lösning för att exportera data till en fil. Ifrån Query Analysern körde jag följande query.

execute master..xp_cmdshell 'bcp MittDatabasNamn.dbo.MinTabell out d:\Lagringsfil.txt -SNamnPåServer -T -w'

3. Sedan kopierade jag innehållet i exportfilen till den lokala fil som skapades i steg 1.

4. Slutligen körde jag bcp-kommandot och mina data fanns på plats.

bcp MittDatabasNamn.dbo.MinTabell in "c:\Lagringsfil.txt" -Slocalhost\SQLExpress -T -N

Här är lite olika referenser som hjälpte mig på vägen.

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1071667&SiteID=1

http://simple-talk.com/sql/database-administration/creating-csv-files-using-bcp...

http://www.issociate.de/board/post/180881/BCP_Format_File.html

http://msdn2.microsoft.com/en-us/library/ms162802.aspx

http://msdn2.microsoft.com/en-us/library/ms191212.aspx

Comments

thanks for sharing new ideas. http://www.onlinepromotionuae.ae

Untold properties in the world have really been great inspirations for others.Canon Printer Customer Care Number UK

Great Post.. Thank you for sharing..When there comes any issue in Avira installed in your device get in touch with the technical experts of Avira Customer care Number UK and get the issue resolved. Call 0800-098-8371 any time you want and we are here to assist you in your issue.

Get benefit for HP printer in the event that you have confront any sort of issue like a printer's mistake, printer blunder message Now you can Call Us toll free number@0800-098-8357 HP Printer Helpline Number UK and HP Printer Phone Number UK

Such a very useful article. Very interesting to read this article.I would like to thank you for the efforts. Canon Printer Customer Care Number UK

Please fill out all the fields.

*
*