Domanda

Ho una tabella di database su un server di sviluppo che ora è completamente popolata dopo averla impostata in esecuzione con una routine di importazione per un file CSV contenente 1,4 milioni di righe.

Ho eseguito la Pubblicazione guidata database sulla tabella e ora ho uno script SQL da 286 MB sul mio computer locale. Il problema è che non riesco a capire come eseguirlo. Se lo carico in SQL Server Management Studio Express, visualizzo una finestra di avviso che dice "Impossibile completare l'operazione".

Qualche idea su come posso far funzionare questo script SQL?

È stato utile?

Soluzione

Eseguire qualcosa di così grande all'interno di una singola transazione non è una buona idea. Pertanto, consiglierei di suddividere il file in blocchi più piccoli e più gestibili.

Un'altra opzione è quella di esaminare alcuni degli altri modi per importare direttamente i dati CSV.

Altri suggerimenti

usa lo strumento sqlcmd per eseguire il file ..

sqlcmd -S myServer\instanceName -i C:\myScript.sql

Nel caso in cui tu abbia un " errore di script inspiegabile " per file sql di grandi dimensioni (> 100 MB) che include diversi INSERT, basta sostituire " INSERT INTO " di " GO INSERT INTO " nel tuo file, che ridurrà la dimensione della transazione.

Questo strumento ( Runner di file di script SQL di grandi dimensioni ) su CodePlex eseguirà file di script di qualsiasi dimensione con log e GUI.

Aggiungendo alla risposta di Gulzar Nazim: Se il problema persiste, prova a specificare codepage del tuo file SQL usando l'opzione -f :

sqlcmd -S myServer \ instanceName -d databaseName -i C: \ myScript.sql -f 65001

Stavo cercando di importare un file .dump da SQLite (UTF-8 per impostazione predefinita) e sqlcmd continuava a generare un errore dopo aver incontrato il primo carattere speciale. -f 65001 risolto il problema per me.

Perché non usare semplicemente DTS per importare direttamente il file CSV?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top