Ho una tabella che memorizza query T SQL dinamicamente costruite in una delle colonne della tabella. Il mio requisito è che ho bisogno di eseguire la query formata (nel mio caso, alcune istruzioni di inserimento) e I 'non voglio usare un ciclo while' per attraversare l'intera riga e quindi eseguire le istruzioni da una variabile. Anche Non voglio usare un cursore. La tabella contiene circa 5 milioni di istruzioni SQL inserite dinamicamente. In precedenza avevo provato questa cosa usando un ciclo while, ma ci sono voluti giorni per completare, e così l'ho lasciato cadere.Esegui un'istruzione SQL dinamica memorizzata in una colonna di una tabella
risposta
dovuto cercare quello che `lakh' stato :)
Come altri commenti citati questo non è l'approccio più ottimale per DML, perche non refactoring. Come è possibile combinare il vostro SQL dinamico in lotti, per es .:
DECLARE @sSQL nvarchar(max)
SET @sSQL = 'BEGIN TRAN; '
SELECT @sSQL = @sSQL + COLUMN_WITH_INSERT_STATEMENT + '; '
FROM TABLE
WHERE [limit number of rows]
SET @sSQL = @sSQL + 'COMMIT TRAN '
EXEC(@sSQL)
In questo modo è possibile combinare il numero controllato di istruzioni INSERT in una singola transazione. È possibile controllare il numero di inserimenti mediante l'istruzione WHERE (ad esempio WHERE ID BETWEEN 1 and 100
per eseguire 100 INSERT alla volta) È possibile eseguire il ciclo attraverso questa condizione (ciclo sì, ma non verrà eseguito su singole righe, ma con condizioni invece eg1 - 100, 101 - 200, 201 - 300 ecc.).
Grazie per la risposta. Ho provato anche questo metodo. Il problema principale che ho avuto è stata l'incoerenza del limite di varchar (max) durante il test su macchine diverse. Forse, qualcosa a che fare con la codifica dei caratteri. – Dibin
Nvarchar (max) limit id 2Gb, tecnicamente dovrebbe essere sufficiente. In che modo affermazioni stai cercando di correre in una volta? –
È possibile concatenare nel proprio exec per andare oltre il limite massimo. 'exec (@sSQL + @ sSQL1 + @ sSQL2)' – SQLMason
- 1. SQL Server: creazione di una tabella temporanea con colonna dinamica
- 2. aggiunta di una colonna nella procedura memorizzata
- 3. Nome tabella dinamica query SQL in FOR
- 4. Come visualizzare una funzione memorizzata - SQL Server
- 5. SQL - Se la stringa in una colonna di una tabella contiene una stringa nella colonna della tabella unita
- 6. React.js che crea una tabella con una quantità dinamica di righe con una colonna modificabile
- 7. Come posso rinominare la mia colonna in una tabella SQL?
- 8. Aggiungere una colonna di zeri al server sql tabella
- 9. SQL Server - Tabella PIVOT dinamica - SQL Injection
- 10. Creazione di una tabella dinamica con PHP
- 11. Come inserire in una tabella con una sola colonna IDENTITY
- 12. Come eseguire una procedura memorizzata in SQL Server ogni ora?
- 13. Come può una funzione memorizzata Postgres restituire una tabella
- 14. Rimuovi identità da una colonna in una tabella
- 15. Tabella pivot dinamica in SQL Server
- 16. SQL: sommare i valori in una colonna
- 17. Postgres che crea una tabella temporanea locale (in interruzione del commit) da una stringa sql dinamica
- 18. Solr sorta su una colonna dinamica
- 19. Come si aggiunge una colonna alla tabella sql server grande
- 20. Istruzione dinamica simile in SQL
- 21. Aggiornare una colonna nella tabella utilizzando SQL * Loader?
- 22. Iterate su una colonna in PL/SQL
- 23. Procedura memorizzata per inserire dati da una tabella a un'altra con gli stessi nomi di colonna
- 24. Come rinominare una colonna di una tabella in Oracle 10g
- 25. trovare sql nome della tabella con una particolare colonna
- 26. SQL regole di confronto conflitto quando si confrontano a una colonna in una tabella temporanea
- 27. Unione di più colonne in una tabella in una singola colonna in un'altra tabella
- 28. Come creare una tabella con colonna Identity
- 29. Riempimento colonna intera tabella SQL
- 30. Conteggio SQL per una colonna di data
L'esecuzione di 5 milioni di istruzioni "INSERT' richiederà un po 'di tempo. Non è possibile un approccio basato su set? –
Hai un orribile design del modello di dati e una soluzione sovradimensionata a un problema. – SQLMason
Mostraci alcuni esempi di questi dati. Questo è un pessimo design ed estremamente difficile da affrontare in un modo che funzioni bene. La tua migliore speranza è che la maggior parte di questi dati possa essere ridotta a qualcosa di più relazionale. – RBarryYoung