在编写一学生成绩管理系统时,遇到这样一个问题:
在写存储过程的时,用到了这样一条语句
insert into @tableName
select @orderid,@coursename,@tchname,@clsrmname,@coursetime
编译的时候总是提示我@tableName没有定义,后来在优快云上求助,终于找到的解决问题的办法。
下面是用后的一点想法:
insert into @tableName -- 这样写法, sql会认为要插入数据到表变量中(而不是变量值所代表的表)
select @orderid,@coursename,@tchname,@clsrmname,@coursetime
应该改成:使用动态sql的方法:
如
exec('insert into '+@tableName +'
select '+@orderid+','+@coursename+','+@tchname+','+@clsrmname+','+@coursetime')
希望能对遇到同样问题的人有所帮助。