declare @sql varchar(1000)
declare @degreename varchar(100)
        declare @HighDegreeNum varchar(100)
       declare @PaperSortID varchar(100)
      declare @QuesType varchar(100)
        set @QuesType=3
set @degreename='''高难度'''
set @HighDegreeNum=2
set @PaperSortID=1
set @sql='select top '+@HighDegreeNum+' *  into #Temp   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
exec(@sql)
         select * from #Temp服务器: 消息 208,级别 16,状态 1,行 12
对象名 '#Temp' 无效。
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_EXAM_QUE_QUESTIONI_EXAM_TQU]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Exam_Question_tItem] DROP CONSTRAINT FK_EXAM_QUE_QUESTIONI_EXAM_TQU
GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Exam_tQuestion]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Exam_tQuestion]
GOCREATE TABLE [dbo].[Exam_tQuestion] (
[QuesID] [IDCode] NOT NULL ,
[SortID] [IDCode] NOT NULL ,
[QuesTitle] [SRe] NOT NULL ,
[DegreeID] [SName] NOT NULL ,
[DegreeName] [SName] NOT NULL ,
[QuesType] [SName] NOT NULL 
) ON [PRIMARY]
GO

解决方案 »

  1.   

    把select * from #Temp放到动态SQL中
      

  2.   

    set @sql='select top '+@HighDegreeNum+' *  into #Temp   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid()   select * from #Temp '
    exec(@sql)
      

  3.   

    --try
    declare @sql varchar(1000)
    declare @degreename varchar(100)
            declare @HighDegreeNum varchar(100)
           declare @PaperSortID varchar(100)
          declare @QuesType varchar(100)
            set @QuesType=3
    set @degreename='''高难度'''
    set @HighDegreeNum=2
    set @PaperSortID=1
    set @sql='select top '+@HighDegreeNum+' *  into #Temp   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    set @sql=@sql+'         select * from #Temp '
    exec(@sql)
      

  4.   

    /*----------------------------------------------------------------过程名称:exam_Paper_getRandomQues
    功能说明:用于从数据库随机抽取试题
    输入参数:
    <高难度试题个数   @HighDegreeNum>
    <中等难度试题个数   @MidDegreeNum>
    <容易试题个数      @EasyDegreeNum>
    <分类ID号      @PaperSortID >
    < 题型     @QuesType >输出参数:
    应用数据表(视图):
    1.<试题表exam_tQuestion>
    -------------------------------------------------------------------*/
    CREATE PROC exam_Paper_getRandomQues(
             @HighDegreeNum varchar(20),
             @MidDegreeNum varchar(20),
     @EasyDegreeNum varchar(20),
     @PaperSortID VARCHAR(100),
     @QuesType VARCHAR(100))
    AS
    declare @sql varchar(1000)
    declare @degreename varchar(100)
    set @degreename='''高难度'''
    set @sql='select top '+@HighDegreeNum+' *  into #Temp   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    exec(@sql)
    set @degreename='''中等'''
    set @sql='select top '+@MidDegreeNum+' *  into #Temp   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    exec(@sql)
           set @degreename='''容易'''
    set @sql='select top '+@MidDegreeNum+' *  into #Temp   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    exec(@sql)
    select * from #Temp我现在要返回一个所的合适的试题数据集??
      

  5.   

    CREATE PROC exam_Paper_getRandomQues(
             @HighDegreeNum varchar(20),
             @MidDegreeNum varchar(20),
     @EasyDegreeNum varchar(20),
     @PaperSortID VARCHAR(100),
     @QuesType VARCHAR(100))
    AS
    declare @sql varchar(1000)
    declare @degreename varchar(100)
    create table #Temp2(QuesID bigint,QuesTitle varchar(2000))
    set @degreename='''高难度'''
    set @sql='select top '+@HighDegreeNum+' QuesID, QuesTitle into #Temp2   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    set @degreename='''中等'''
    set @sql=@sql+'select top '+@MidDegreeNum+' QuesID, QuesTitle  into #Temp2   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    exec(@sql)
           set @degreename='''容易'''
    set @sql=@sql+'select top '+@MidDegreeNum+'QuesID, QuesTitle  into #Temp2   from exam_tQuestion where degreename='+@degreename+' and SortID='+@PaperSortID+' and QuesType= '''+@QuesType+''' order by newid() '
    exec(@sql)
    select * from #Temp2
    exam_Paper_getRandomQues '0','0','2','5820','单项选择题'服务器: 消息 2714,级别 16,状态 1,行 1
    数据库中已存在名为 '#Temp2' 的对象。
    服务器: 消息 2714,级别 16,状态 1,行 1
    数据库中已存在名为 '#Temp2' 的对象。
    服务器: 消息 2714,级别 16,状态 1,行 1
    数据库中已存在名为 '#Temp2' 的对象。这样还是不行啊
      

  6.   

    外部创建后,在动态SQL中用insert into ...,不要用select * into