如何在存储过程中使用参数作为数据表名?

lengjunming 2003-03-11 11:57:40
我正在编写两个存储过程,碰到了问题:无法将参数作为数据表名.
第一个过程是用CREATE TABLE,根据我给出的参数来创建新表(参数作为表名):
create proc 过程名
@m_name

as
CREATE TABLE @m_name
......

第二个过程是将一个表中的数据向另一个表中写入(表名作为参数给出):
create proc 过程名
@m_name1,
@m_name2

as
insert @m_name1
select * from @m_name
......

编译的时候系统语法通不过.各位高手,这两个存储过程应该如何修改?或者有更好的方法可以实现同样的功能?请各位不吝赐教!!!!(最好能给出较详细的源代码.)
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angle1219 2003-03-11
  • 打赏
  • 举报
回复
用动态sql
declare @sql varchar(500)
set @sql='insert into '+@m_name1 +' select * from '+@m_name
exec @sql
happydreamer 2003-03-11
  • 打赏
  • 举报
回复
create proc pp2
@m_name char(10)

as

exec('CREATE TABLE '+ @m_name+'(a int)')


exec pp2 'pp'



create proc pp3
@m_name1 char(10),
@m_name2 char(10)

as
exec('insert '+@m_name1+' select * from '+@m_name2 )


pp3 'pp','pp'
leimin 2003-03-11
  • 打赏
  • 举报
回复
已经解决了!
:-)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧