老朱說:
你原先的寫法中有一個游標
而且在不停的移動游標的指針
這樣容易造成混亂.無非是想根據某一個結點找出其最初的祖先.
那麼可以另外寫一個sp,其參數為in out
create proc sp_1
@partno in out
as
SELECT isnull(FATHER_NO,@partno) FROM BOMLIST WHERE SON_NO = @partno在游標循環中加上這樣的話:
delcare @i int,@parent_no varchar(20)
set @i = 0
while (@i = 0)
begin
set @parent_no = @partno
exec sp_1(@partno)
if @partent_no = @partno
set @i = 1
end這樣做的話,條理可以變得清晰的多!