直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接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 '学生表'追问
set l_sql=CONCAT_WS(' ','select min(id) from',in_table); 字符串拼接完 我执行这条语句 报Unknown column 'data' in 'field list' 但我是有这个表的
直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接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个回答 2012-03-21
表名字段为name的话 用POST的话就是这样取$_POST['name'] 用GET同理一样
第3个回答 2020-06-28
BEGIN SET @sqlStr:=CONCAT("select * from ",c); PREPARE stmt from @sqlStr; EXECUTE stmt; DEALLOCATE PREPARE stmt; END c是你传进来的值的变量IN `c` varchar(100)