delimiter $$
drop procedure if exists ChangeSequence$$
create procedure ChangeSequence
(
_sign int ,-- 0: 上移 1:下移 
TableName varchar(50)  ,-- 表名 
ItemName varchar(50) ,-- 主键字段名 
ItemID int , -- 主键ID 
SortName  varchar(50) , -- 排序ID 
TypeName varchar(50) , -- 分类字段名 
TypeValue varchar(50)   -- 分类值 
)
begin
declare  _SQL varchar(4000);
declare ThisSort int;
declare  PREVID int;
declare NextID int;
declare _Count int; create temporary table _Tab
(
ItemID  int, 
Sort int 
);
set _SQL=concat('INSERT INTO _Tab (',ItemID,Sort,') SELECT ' ,ItemName,SortName,' FROM ',TableName) ;if (TypeName<>'' and TypeValue<>'')  then
set _SQL=concat(_SQL,' where ',TypeName,TypeValue);
end if;
SET _SQL = concat(_SQL,' ORDER BY Sort ASC ') ;
str @v_sql=_SQL;
prepare  stmt from @v_sql;--这个附近有错误
execute(stmt); 
deallocate prepare stmt;
SET _SQL = ''
end$$唉,悲剧没搞过mysql,帮帮忙,
有答案就结贴我的风格。