2016-04-08 24 views
1

üretti. Uzak db SSMS'den üretilen bir ~ (6GB) .sql dosyam var ve içe aktarma girişiminde bulunmak için sqlcmd'yi yerel olarak kullanıyorum. İçindeçözme 'karakter dizesi sonra kapatılmamış tırnak işareti' yerel bir SQL Server yüklemek uzak bir db yeniden oluşturmak çalışıyorum .sql dosyasını

sqlcmd -S SERVER -a 32000 -i inputfile.sql -o output.txt 

2200 civarında kayıt bana verir: Unclosed quotation mark after the character string

ben ithalat ayarlarına yapmak (ya da hatta ihraç yeni oluşturabilir şey var mı Burada

kullanıyorum komuttur. sql dosyası) bunu çözecek? Sunucu oluşturulan sql geçerli sql olarak görünmüyor son derece garip.

+0

tablo veri içinde tırnak "'" it.you sql stüdyosunda SQL komut dosyasını açıp kontrol edebilirsiniz içinde verilere sahip olabilir. –

+1

Dosyayı SSMS'de açmaya çalışırken bir SystemOutOfMemory istisnası oluşur. – Erik

cevap

3

Bu Stackoverflow thread will prove useful for you. İlgili ayrıntıları aşağıda yeniden:

Sorun açıklaması:

In some rare cases the sqlcmd utility can fail with the import and raise the following error: "Unclosed quotation mark after the character string ..." which indicates that one of SQL queries has not been executed. This happens because sqlcmd works using stream processing, i.e. it reads some piece of data, processes it, reads next piece and so on. In some cases an input file can contain huge SQL instruction which size is bigger than the amount of the data that could be processed by sqlcmd at a time, so sqlcmd tries to execute broken SQL and fails.

Olası çözüm

The sqlcmd utility can accept the "-a" parameter which defines the maximum size of packet (piece of data) that will be used during processing. The maximum value is 32767, the default value is 4096, so it makes sense to always use this parameter with maximum value.

sqlcmd -i input.sql -a 32767 -o import_log.txt 

Alternatif çözüm

Yukarıdakiler sizin için başarısız olursa, Toplu Kopyalama (BCP) yardımcı programını kullanmayı düşünebilirsiniz. Verileri uzak bir kaynaktan yerel bir klonla veya tam tersi olarak taşımak için en hızlı yol olduğuna inanıyorum. Burada daha fazla ayrıntı bulabilirsiniz: https://blogs.msdn.microsoft.com/sqlcat/2010/07/30/loading-data-to-sql-azure-the-fast-way/

bcp AdventureWorksLTAZ2008R2.SalesLT.Customer out C:\Users\user\Documents\GetDataFromSQLAzure.txt -c -U [email protected] -S tcp:servername.database.windows.net -P password 
0

Ben veriler' ile orada olması ile jophy işinin doğru olduğunu düşünüyorum. Açmak için notepad ++ veya ultraedit'i deneyebilirsiniz.

İlgili konular