Ho un file sql da 123 MB che devo eseguire sul mio PC locale. Ma sto ottenendo
Cannot execute script: Insufficient memory to continue the execution of the program
Come risolvere questo problema?
Ho un file sql da 123 MB che devo eseguire sul mio PC locale. Ma sto ottenendo
Cannot execute script: Insufficient memory to continue the execution of the program
Come risolvere questo problema?
Risposte:
usa lo strumento della riga di comando SQLCMD che è molto più snello sulla memoria. È semplice come:
SQLCMD -d <database-name> -i filename.sql
Sono necessarie credenziali valide per accedere all'istanza di SQL Server o anche per accedere a un database
Preso da qui .
-e
per connessione attendibile
Potrebbe aiutarti! Si prega di vedere i passaggi seguenti.
sqlcmd -S nome-server -d nome-database -i script.sql
Puoi anche aumentare semplicemente il valore di Memoria minima per query nelle proprietà del server. Per modificare questa impostazione, fare clic con il pulsante destro del mouse sul nome del server e selezionare Proprietà> scheda Memoria.
Ho riscontrato questo errore durante il tentativo di eseguire uno script SQL da 30 MB in SSMS 2012. Dopo aver aumentato il valore da 1024 MB a 2048 MB, sono stato in grado di eseguire lo script.
(Questa è la stessa risposta che ho fornito qui )
Per l'autenticazione di Windows utilizzare questo cmd sql
SQLCMD -S TestSQLServer\SQLEXPRESS -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
Nota: se è presente uno spazio nel percorso del file sql, utilizzare "(virgolette)"
Per l'autenticazione di SQL Server, utilizzare questo cmd sql
SQLCMD -S TestSQLServer\SQLEXPRESS -U sa -P sasa -d AdventureWorks2018 -i "d:\document\sql document\script.sql"
-S TestSQLServer \ SQLEXPRESS: qui specifica il nome di SQL Server
-U sa: nome utente (in caso di autenticazione SQL Server)
-P sasa: password (in caso di autenticazione SQL Server)
-d AdventureWorks2018: il nome del database viene qui
-i "d: \ document \ sql document \ script.sql": percorso del file SQLFile
Se capisco correttamente il tuo problema, stai tentando di ripristinare (transact sql) xyz.sql - database + schema. Puoi provare questo comando che ha funzionato per me:
SQLCMD -U sa -i xyz.sql
Il mio database era più grande di 500 MB, quindi ho utilizzato quanto segue
C:\Windows>sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -d DATABASE -i C:\FILE.sql
Ha caricato tutto, inclusi gli SP
* NB: esegui cmd come amministratore
A volte, a causa delle grandi dimensioni dello script e dei dati, riscontriamo questo tipo di errore. Il server necessita di memoria sufficiente per eseguire e fornire il risultato. Possiamo semplicemente aumentare la dimensione della memoria, per query.
Devi solo andare alle proprietà del server sql> scheda Memoria (lato sinistro)> Ora imposta il limite di memoria massimo che desideri aggiungere.
Inoltre, c'è un'opzione in alto, "Risultati in testo", che consuma meno memoria rispetto all'opzione "Risultati in griglia", possiamo anche andare per Risultato in testo per meno memoria di esecuzione.
Lo script sottostante funziona perfettamente:
sqlcmd -s Server_name -d Database_name -E -i c:\Temp\Recovery_script.sql -x
Sintomi:
Quando si esegue uno script di ripristino con l'utilità sqlcmd, viene visualizzato il messaggio "Sqlcmd: Error: Syntax error alla riga XYZ accanto al comando" X "nel file" file_name.sql "." si è verificato un errore.
Causa:
Questa è una limitazione dell'utilità sqlcmd. Se lo script SQL contiene il segno del dollaro ($) in qualsiasi forma, l'utilità non è in grado di eseguire correttamente lo script, poiché sostituisce automaticamente tutte le variabili per impostazione predefinita.
Risoluzione:
Per eseguire uno script che ha un segno di dollaro ($) in qualsiasi forma, è necessario aggiungere il parametro "-x" alla riga di comando.
per esempio
Originale: sqlcmd -s Nome_server -d Nome_database -E -ic: \ Temp \ Recovery_script.sql
Risolto: sqlcmd -s Server_name -d Database_name -E -ic: \ Temp \ Recovery_script.sql -x
sqlcmd -S mamxxxxxmu \ sqlserverr -U sa -P x1123 -d QLDB -i D: \ qldbscript.sql
Apri il prompt dei comandi in Esegui come amministratore
inserisci il comando sopra
"mamxxxxxmu" è il nome del computer "sqlserverr" è il nome del server "sa" è il nome utente del server "x1123" è la password del server "QLDB" è il nome del database "D: \ qldbscript.sql" è il file di script sql da eseguire nel database