遞迴儲存過程中使用cursor
遞迴儲存過程中使用cursor可以用來向上遍歷有向圖,找出其直系父輩。
注意定義成local型別的cursor !
[@more@]PROCEDURE sp_get_all_lineal_parent
@node_id int,
@lineal_path varchar(200) output
with encryption
AS
SET NOCOUNT ON
BEGIN
IF ISNULL(@lineal_path, 'NULL') = 'NULL' SET @lineal_path = ''
IF EXISTS( select DependentProductID from Dependence_TB where ProductID = @node_id )
BEGIN
DECLARE cur_parent_node CURSOR FAST_FORWARD local FOR
SELECT DependentProductID
FROM Dependence_TB
WHERE ProductID = @node_id
DECLARE @parent_node_id int
OPEN cur_parent_node
FETCH NEXT FROM cur_parent_node INTO @parent_node_id
WHILE @@FETCH_STATUS = 0
BEGIN
set @lineal_path = @lineal_path + ',' + cast(@parent_node_id as varchar)
exec sp_get_all_lineal_parent @parent_node_id, @lineal_path output
FETCH NEXT FROM cur_parent_node INTO @parent_node_id
END
CLOSE cur_parent_node
DEALLOCATE cur_parent_node
END
insert into ##temp_a(a) select 100
select * from ##temp_a
END
--呼叫示例begin
declare @path varchar(200)
create table ##temp_a(a int)
EXEC sp_get_all_lineal_parent 12, @path output
drop table ##temp_a
select @path
end
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-884175/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程中使用cursor儲存過程
- SQL儲存過程迴圈SQL儲存過程
- 使用儲存過程儲存過程
- Oracle儲存過程中跳出迴圈的寫法Oracle儲存過程
- ADO中sqlserver儲存過程使用SQLServer儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- oracle procedure儲存過程(pl/sql)_使用declare cursor_begin end巢狀Oracle儲存過程SQL巢狀
- SQL Server儲存過程中raiserror的使用SQLServer儲存過程AIError
- ADO中sqlserver儲存過程使用 (轉)SQLServer儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- PB中呼叫儲存過程儲存過程
- 儲存過程中拼接字串儲存過程字串
- java中呼叫儲存過程Java儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- [20120414]儲存過程遞迴呼叫與V$SQL.txt儲存過程遞迴SQL
- Hibernate中怎麼使用儲存過程呢?儲存過程
- 儲存過程中巢狀儲存過程的變數執行方式儲存過程巢狀變數
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- jsp中呼叫儲存過程JS儲存過程
- 儲存過程中慎用 execute immediate儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- jdbctemplate呼叫儲存過程傳遞陣列引數JDBC儲存過程陣列
- Laravel 中使用 MySQL 儲存過程LaravelMySql儲存過程
- mysql 遊標的使用(儲存過程)MySql儲存過程
- oracle 儲存過程遊標的使用Oracle儲存過程
- Oracle中定義package以及儲存過程的使用OraclePackage儲存過程
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 從程式中傳遞開始日期與結束日期至儲存過程儲存過程
- MySql儲存過程中limit傳參MySql儲存過程MIT
- 儲存過程中巢狀事務儲存過程巢狀
- oracle 儲存過程中螢幕列印Oracle儲存過程
- 在儲存過程中寫truncate table儲存過程
- oracle儲存過程中的陣列Oracle儲存過程陣列