一、游標的使用並不難,游標其實就是編程中的for迴圈,只不過在資料庫中寫法不同而已。 DECLARE My_Cursor CURSOR --創建游標讀取數據 FOR select id,name from 表--數據源 OPEN My_Cursor; --打開游標 FETCH NEXT FROM M ...
一、游標的使用並不難,游標其實就是編程中的for迴圈,只不過在資料庫中寫法不同而已。
DECLARE My_Cursor CURSOR --創建游標讀取數據
FOR
select id,name from 表--數據源
OPEN My_Cursor; --打開游標
FETCH NEXT FROM My_Cursor INTO @id,@name --讀取第一行數據
WHILE @@FETCH_STATUS = 0
BEGIN
--業務處理
FETCH NEXT FROM My_Cursor INTO @id,@name --讀取下一行數據,沒有則會無限迴圈
END
CLOSE My_Cursor; --關閉游標
DEALLOCATE My_Cursor; --釋放游標
二、在業務處理的地方,可以根據條件迴圈吧數據加到臨時表中,這樣一來臨時表行轉列的動態列數據就可以加到臨時表中了。
但是要添加進去的值是參數
insert into #t_Data select @id,@name --這樣執行會報錯
這裡就需要用到拼接了,使用Exec()方法執行。
Exec('insert into #t_Data select ' + @id +@name) --這裡只是例子@id是int類型也會報錯就需要cast轉換類型了。