create proc procname
@tablename varchar(20)
as
declare @sql varchar(1000)
set @sql='create table '+@tablename+' (id int)'
sp_execute @sql

解决方案 »

  1.   

    --e.g:
    create proc proc_name_test 
    @name varchar(20)
    as
    exec('create table '+@name+' (id int)')
      

  2.   

    --调用:
    exec proc_name_test 'test'
      

  3.   

    楼上的已经足够用了,注意如果建的表是临时表
    则@tablename 要如'#table1' 或则 
    set @sql='create table #'+@tablename+' (id int)'
      

  4.   

    谢谢 outwindows(窗外) 他的回答是正确的,
    skyboy0720(飞)  的回答在 sp_execute @sql 会出现错误,不知道为什么?