将试卷信息(标题,总分等)insert一张表中 然后以该试卷的ID为表名(以Title开头,如Title2) 在存储过程中创建一个表 该如何创建 下面是我写的SQL代码
CREATE PROCEDURE  AddNewPaper
(
     @tbName      char(50),
     @paperTitle  nvarchar(100),
      @paperPoint char(10),
      @man        nvarchar(50),
      @shijian    char(50),
       @result    int     output
)
 AS
    if not exists (SELECT * FROM paperInf WHERE paperTitle=@paperTitle )
BEGIN
insert into paperInf(paperTitle,paperPoint,man,shijian) values(@paperTitle,@paperPoint,@man,@shijian)
   SELECT @result = SCOPE_IDENTITY()
   select @tbName = 'Title'|| to_char(SCOPE_IDENTITY())         // 这里显示有问题
   exec(create table "+@tbName"(questionType char(10),questionID char(10)))
 end
else
begin
   set @result=-1
end
GO

解决方案 »

  1.   

    tryCREATE PROCEDURE  AddNewPaper
    (
         @tbName      char(50),
         @paperTitle  nvarchar(100),
          @paperPoint char(10),
          @man        nvarchar(50),
          @shijian    char(50),
           @result    int     output
    )
     AS
        if not exists (SELECT * FROM paperInf WHERE paperTitle=@paperTitle )
    BEGIN
    insert into paperInf(paperTitle,paperPoint,man,shijian) values(@paperTitle,@paperPoint,@man,@shijian)
       SELECT @result = SCOPE_IDENTITY()
       select @tbName = 'Title'+Rtrim(SCOPE_IDENTITY())        
       exec('create table '+@tbName+'(questionType char(10),questionID char(10))')
     end
    else
    begin
       set @result=-1
    end
    GO