SQL2000的存储过程格式如下:
CREATE procedure CL_Product_MoveDown (@index_id bigint)as
begin
declare @nex_displayorder varchar(8) --后一记录序号
declare @nex_typeid varchar(8) --后一记录ID
declare @cur_displayorder varchar(8) --当前记录序号
declare @cur_superid varchar(8) --当前记录的SUPERID--取得当前记录序号
select @cur_displayorder=p_display_order ,
@cur_superid=p_sortsuperid
from cl_product_sort
where p_sortid=@index_id--取得要下移的记录的下一记录序号
select @nex_displayorder=min(p_display_order) from cl_product_sort
where p_sortsuperid =@cur_superid
and p_display_order > @cur_displayorder--取得下一记录ID
select @nex_typeid=p_sortid
from cl_product_sort
where p_display_order=@nex_displayorderupdate cl_product_sort
set p_display_order=@nex_displayorder
where p_sortid=@index_idupdate cl_product_sort
set p_display_order=@cur_displayorder
where p_sortid=@nex_typeidend
就是一个分类的同级下移。
帮帮尽快,MYSQL确实不会,又急用。
CREATE procedure CL_Product_MoveDown (@index_id bigint)as
begin
declare @nex_displayorder varchar(8) --后一记录序号
declare @nex_typeid varchar(8) --后一记录ID
declare @cur_displayorder varchar(8) --当前记录序号
declare @cur_superid varchar(8) --当前记录的SUPERID--取得当前记录序号
select @cur_displayorder=p_display_order ,
@cur_superid=p_sortsuperid
from cl_product_sort
where p_sortid=@index_id--取得要下移的记录的下一记录序号
select @nex_displayorder=min(p_display_order) from cl_product_sort
where p_sortsuperid =@cur_superid
and p_display_order > @cur_displayorder--取得下一记录ID
select @nex_typeid=p_sortid
from cl_product_sort
where p_display_order=@nex_displayorderupdate cl_product_sort
set p_display_order=@nex_displayorder
where p_sortid=@index_idupdate cl_product_sort
set p_display_order=@cur_displayorder
where p_sortid=@nex_typeidend
就是一个分类的同级下移。
帮帮尽快,MYSQL确实不会,又急用。
按语法和你的需求进行修改
都是很容易实现的
begin
declare v_nex_displayorder varchar(8); -- 后一记录序号
declare v_nex_typeid varchar(8); -- 后一记录ID
declare v_cur_displayorder varchar(8); -- 当前记录序号
declare v_cur_superid varchar(8); -- 当前记录的SUPERID --取得当前记录序号
select p_display_order ,
p_sortsuperid into v_cur_displayorder,v_cur_superid
from cl_product_sort
where p_sortid=i_index_id;--取得要下移的记录的下一记录序号
select min(p_display_order) into v_nex_displayorder from cl_product_sort
where p_sortsuperid =v_cur_superid
and p_display_order > v_cur_displayorder; --取得下一记录ID
select p_sortid into v_nex_typeid
from cl_product_sort
where p_display_order=v_nex_displayorder;update cl_product_sort
set p_display_order=v_nex_displayorder
where p_sortid=i_index_id; update cl_product_sort
set p_display_order=v_cur_displayorder
where p_sortid=v_nex_typeid;
end;