直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接sql语句,再用exec执行。例如:
CREATE
PROCEDURE
[proc_test]
(@tablename
varchar(100))
WITH
EXECUTE
AS
CALLER
AS
declare
@sql
varchar(1000);
set
@sql='select
from
'+@tablename
exec(@sql)
GO
再直接执行
exec
proc_test
'学生表'
DECLARE stuName VARCHAR(50);
DECLARE flag INT;
DECLARE update_cursor CURSOR
FOR
SELECT stu_name FROM student WHERE id = id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;
SET flag=0;
OPEN update_cursor;
REPEAT /循环/
FETCH update_cursor INTO stuName;
SET json = CONCAT(json,',',stuName);
UNTIL flag
END REPEAT;
CLOSE update_cursor ;
SELECT VALUE INTO V_VALUE FROM TABLENAME WHERE ID = p_id ;
V_VALUE := V_VALUE + P_NUM;
UPDATE TABLENAME SET VALUE = V_VALUE WHERE ID = p_id ;
CREATE DEFINER 存储过程名
@变量1 类型 ----这里个就是传进来的
@变量2 类型 output ----这个是定义输出变量
as
declared @变量 类型,@变量 类型 --这里是定义内部变量 只能这是过程用
if 条件
begin
#¥%……&
end
else
begin
#¥%……&
end
-----不知道你要什么
execute 数据库名dbo过程名 -----这个是 在这个过程里 调用别的过程
CREATE PROCEDURE proc_name
AS
begin
select aaid,bbid,aname,btitle from a,b where aaid=baid
end
以上就是关于mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法全部的内容,包括:mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法、在MySql数据库中实现一个存储过程,在这个存储过程中,需要用游标,动态SQL,详情点击查看。。。、MySql的存储过程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)