我想使用@sqlQuery變量創建動態命令。我還聲明瞭一個遊標(例如:@myCursor)。我怎樣才能「SET @myCursor = CURSOR FOR @sqlQuery」。我剛剛提到的語法不起作用。我使用SQL 2000如何在存儲過程中將光標設置爲動態創建的SQL查詢
1
A
回答
2
+0
和http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them – HLGEM 2011-05-02 19:20:05
1
可以使用sp_executesql
做到這一點。只要確保在動態SQL中打開遊標。
CREATE PROCEDURE OpenCursor (@query nvarchar(max), @cur cursor VARYING OUTPUT)
AS
DECLARE @sql nvarchar(max)
SET @sql = N'SET @cur = CURSOR STATIC FOR ' + @query + '; OPEN @cur'
EXEC sp_executesql @sql, N'@cur cursor OUTPUT', @cur OUTPUT
GO
DECLARE @cur cursor
EXEC OpenCursor 'SELECT * FROM sysobjects', @cur OUTPUT
FETCH NEXT FROM @cur
相關問題
- 1. 存儲過程中的動態光標
- 2. 存儲過程中的動態光標
- 3. 如何在存儲過程中將sql查詢的輸出設置爲精確
- 4. 動態查詢在存儲過程中創建的臨時表
- 5. SQL動態創建存儲過程?
- 6. 如何將存儲過程的動態sql查詢更改爲oracle中的靜態sql查詢
- 7. 如何在SQL Server存儲過程中創建動態參數
- 8. 如何在SQL Anywhere中創建動態存儲過程?
- 9. T-SQL如何在存儲過程中動態創建表?
- 10. 存儲過程從動態sql創建存儲過程
- 11. 在創建動態查詢存儲過程的MySQL
- 12. 構建動態T-SQL查詢在一個存儲過程
- 13. 如何在oracle存儲過程中創建和執行動態查詢?
- 14. 在SQL Server中動態查詢的存儲過程
- 15. 使用光標更新動態表的SQL Server存儲過程
- 16. sql存儲過程參數作爲動態查詢的參數
- 17. db2存儲過程動態創建選擇查詢
- 18. 如何在MySQL存儲過程中將變量設置爲查詢結果?
- 19. pl/sql - 在存儲過程中使用動態查詢
- 20. 在MS SQL服務器中動態創建存儲過程2012
- 21. 在SQL Server 2005的存儲過程設置查詢超時
- 22. 的Oracle SQL動態查詢到光標
- 23. SQL Server:存儲過程中的動態查詢
- 24. 光標在存儲過程
- 25. 置換SQL查詢與存儲過程
- 26. 動態創建更新存儲過程中的SQL
- 27. 如何將存儲過程轉換爲SQL Server Compact Edition查詢
- 28. SQL查詢/存儲過程
- 29. 如何在SQL Server中爲存儲過程設置超時
- 30. 用if存儲過程動態查詢
很多事情都是錯誤的...... – JNK 2011-05-02 14:53:32
或者你不能使用遊標是首選的方法。遊標對於SQL Server性能來說是非常糟糕的,並且不應該是技術的首選。所有遊標的95%(以我個人經驗)可以用基於集合的代碼替代。動態地做它更糟,因爲它不可能完全測試。 – HLGEM 2011-05-02 19:19:41