CREATE PROCEDURE List_Report
(
    @PageNumber             int,
    @RecordNumber           int,
    @Type  varchar(50)
-------------------------^^^^^^
)
AS
declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
set @tem1=@RecordNumber
set @tem2=@RecordNumber*@PageNumber
set @tem3=@Type
exec('select top '+@tem1+'  *  from Briefing where  
      ID not in (select top '+@tem2+' ID  from  Briefing  where typename='''+@tem3+''' order  by  UploadTime)
      and  typename='''+@tem3+''' order  by  UploadTime')
GO

解决方案 »

  1.   

    CREATE PROCEDURE List_Report
    (
        @PageNumber             int,
        @RecordNumber           int,
        @Type varchar
    )
    AS
    declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
    set @tem1=@RecordNumber
    set @tem2=@RecordNumber*@PageNumber
    set @tem3=@Type
    exec('select top '+@tem1+'  *  from Briefing where  
          ID not in (select top '+@tem2+'  ID  from  Briefing  where typename='+@tem3+' order  by  UploadTime)
          and  typename='''+@tem3+'''  order  by  UploadTime')
    GO
      

  2.   

    CREATE PROCEDURE List_Report
    (
        @PageNumber             int,
        @RecordNumber           int,
        @Type  varchar(50)
    -------------------------^^^^^^
    )
    AS
    declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
    set @tem1=@RecordNumber
    set @tem2=@RecordNumber*@PageNumber
    set @tem3=@Type
    exec('select top '+@tem1+'  *  from Briefing where  
          ID not in (select top '+@tem2+' ID  from  Briefing  
    where typename='+''''+@tem3+''''+' order  by  UploadTime)
          and  typename='+''''+@tem3+''''+' order  by  UploadTime')
    GO
      

  3.   

    to  CrazyFor(蚂蚁) ( ):
    你的语法看起来是对的,我也这样写过,运行时是不提示错误了,可是数据库中明明有匹配记录,就是一条记录也查询不出来。to  pengdali(大力 V2.0) ( ) :
    你的语法有问题,第二层括号中用的是单引号,但第一层中用"',其实这两层应该是一样的吧to  sdhdy(大江东去...) ( ):
    你写的语句在传递@tem3时用的是两层"(双引号)吗?这样好像不对噢
      

  4.   

    可是,我还要问一下CrazyFor(蚂蚁) () ,为什么要用三个'呢?