一同学向我请教在MySQL的存储过程中,如何使用表名做参数动态创建表。
这个问题在MySQL 5.0以前非常麻烦,但是在MySQL 5.0.13版之后,由于引入了PREPARE语句,一切变得简单了。
此问题在网上搜索的帖子一般都是错误的!
直接将数据库表名字段作为字符类型传到存储过程中,存储过程拼接sql语句,再用exec执行。例如:CREATE PROCEDURE [proc_test](@tablename varchar(100))WITH EXECUTE AS CALLERASdeclare @sql varchar(1000)set @sql='select * from '+@tablenameexec(@sql)GO再直接执行 exec proc_test '学生表'欢迎分享,转载请注明来源:内存溢出
评论列表(0条)