Create  Procedure test_pro
@Ta varchar(20),  --A表
@Tb varchar(20),  --B表
@lcstr varchar(8000) output --返回字串
asdeclare @lcstring varchar(8000)
select @lcstring ='create table '+@Ta+'([ida] [int]  COLLATE Chinese_PRC_CI_AS NOT NULL , [Layer] [int] NOT NULL )  ON [PRIMARY] '
+'create table '+@Tb+'([idb] [int]  COLLATE Chinese_PRC_CI_AS NOT NULL , [ida] [int] NOT NULL ,[OutQty] [int] NOT NULL )  ON [PRIMARY] '+
'select a.*,b.idb,b.outqty from '+@Ta+' as a join '+@Tb+' as b on a.ida=b.ida 'select @lcstr=@lcstring

解决方案 »

  1.   

    CREATE Procedure test_pro
    @Ta varchar(20),  --A表
    @Tb varchar(20)  --B表
    --@lcstr varchar(8000) output --返回字串
    asexec ('select * into '+@tb+' from '+@ta)GO
      

  2.   

    CREATE Procedure test_pro
    @Ta varchar(20),  --A表
    @Tb varchar(20)  --B表
    --@lcstr varchar(8000) output --返回字串
    asexec ('select * into '+@tb+' from '+@ta)GO
      

  3.   

    SQL Server 好像没有直接根据表名得到 SQL 建表脚本的功能,所以觉得你的第一个功能可能无法实现;
    第二个可以使用 zhaoyang0405(朝阳) 的: exec ('select * into '+@tb+' from '+@ta)