我有一個表將動態構建的T SQL查詢存儲在表的列之一中。我的要求是,我需要執行查詢形成(在我的情況下,一些插入語句),我'不想使用一個while循環'來遍歷整個行,然後執行一個變量的語句。另外我不想用光標。該表擁有約500萬個動態形成的SQL插入語句。我以前曾使用while循環嘗試過這種方法,但需要花費數天時間才能完成,因此我放棄了它。執行存儲在表的列中的動態SQL語句
6
A
回答
4
不得不尋找什麼'十萬」是:)
至於其他意見中提到這並不是DML最優化的方法,請考慮重構。因爲它是可以結合批量動態SQL,例如:
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)
這樣你可以控制的數量INSERT語句合併成一個單一的交易。您可以通過WHERE語句控制插入的數量(例如,WHERE ID BETWEEN 1 and 100
一次執行100個INSERT)您可以循環這個條件(是循環,但它不會循環通過單個行,而是通過條件代替eg1 - 100,101-200,201-300等)。
相關問題
- 1. 執行動態SQL語句
- 2. 執行動態SQL語句表
- 3. 執行存儲在過程參數中的sql語句
- 4. SQL Server中的存儲過程中的語句執行
- 5. 如何動態執行sql語句
- 6. 存儲過程中的Case語句中使用的動態SQL
- 7. 動態執行switch語句
- 8. 執行sql語句並在變量中存儲值
- 9. 存放在那裏條件在表中的動態SQL語句
- 10. T-SQL動態執行存儲過程
- 11. 在SQL存儲過程中動態使用「USE [Database]」語句
- 12. 在sql中動態創建表語句
- 13. 如何SQL Server存儲在存儲過程中的SQL語句
- 14. SQL Server中執行存儲過程中更新語句
- 15. 在SQL服務器中動態構建和執行語句
- 16. 如何在SQL中執行動態if語句?
- 17. 未能執行SQL腳本語句(在MySQL存儲過程)
- 18. 執行的SQL語句
- 19. 執行SQL語句
- 20. 執行SQL語句
- 21. SQL執行語句
- 22. 在SSIS中的另一個SQL語句內注入動態SQL語句執行SQL任務
- 23. WLST執行存儲變量「connect()」語句
- 24. 執行存儲在表中的動態選擇查詢
- 25. 執行存儲在字符串變量中的c#語句
- 26. 如何使用T-SQL執行保存在表中的SQL語句
- 27. 如何執行非常長的動態sql語句?
- 28. 如何執行一個動態創建的sql語句
- 29. 存儲過程中的SQL case語句
- 30. 變量中的sql語句存儲值
執行500萬個'INSERT'語句需要一些時間。基於集合的方法不可行嗎? –
您有一個可怕的數據模型設計和過度設計的解決方案。 – SQLMason
向我們展示這些數據的一些例子。這是一個非常糟糕的設計,而且很難用性能良好的方式來解決。你最大的希望就是可以將這些數據的大部分縮減爲更多的關係。 – RBarryYoung