游標
項目中自動增長的表格的生成涉及到數據庫查詢結果集的批量操作。
檢索操作返回一組稱為結果集的行。這組返回的行都是與SQL語句相匹配的行(零行或多行)。使用簡單的SELECT 語句不能每次一行地處理所有行(相對於成批地處理它們)。
游標(cursor)是一個存儲在數據庫服務器上的數據庫查詢,它不是一條SELECT 語句,而是被該語句檢索出來的結果集。在存儲了游標之后,應用程序可以根據需要滾動或瀏覽其中的數據。
待查詢的數據表
CREATE PROCEDURE find_anpogongkuang --輸入參數 @targetID int, --輸出參數 @text varchar(500) output AS BEGIN --初始化 SET @text='' --定義游標 declare cursor_test cursor for --查詢出一個結果集,注意,這里的*有幾個變量,在下面就要declare幾個變量,並且順序要一一對應 select * from [dbo].[anpo_gongkuang] where anpo_gongkuang.target_id=@targetID --與上面對應 declare @target_id int, @bishop varchar(50), @mp varchar(50), @qdzj varchar(50), @kzbz varchar(50), @working_condition_type varchar(50) --打開游標 open cursor_test fetch next from cursor_test into @target_id,@bishop,@mp,@qdzj,@kzbz,@working_condition_type --fetch到數據時進行的操作 WHILE @@FETCH_STATUS = 0 begin --這里面可以寫具體的操作邏輯,例如我這里就是拼接結果賦值給@text fetch next from cursor_test into @target_id,@bishop,@mp,@qdzj,@kzbz,@working_condition_type SET @text=@text+@mp+'+'+@qdzj+'+'+@kzbz+'+'+@working_condition_type end --關閉游標 close cursor_test --刪除游標 deallocate cursor_test END GO
測試