mysql 存储过程 数据库表名字段作为参数传递给存储过程的方法

2025-05-08 11:44:01
推荐回答(4个)
回答1:

直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接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 '学生表'

回答2:

直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接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 '学生表'

回答3:

表名字段为name的话
用POST的话就是这样取$_POST['name']
用GET同理一样

回答4:

BEGIN
SET @sqlStr:=CONCAT("select * from ",c);
PREPARE stmt from @sqlStr;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
c是你传进来的值的变量IN `c` varchar(100)