就这一条CREATE PROCEDURE dbo.PrGetGuestBookBySize
@Page int,  --当前页
@PageSize int --每页显示条数
AS
SELECT TOP (@PageSize) * FROM GuestBook WHERE FSysId >
(SELECT max (FSysId) FROM (SELECT TOP ((@Page-1)*@PageSize) FSysId 
From GuestBook ORDER BY FSysId) AS T) ORDER BY FSysId

保存时提示第 5 行: '(' 附近有语法错误。
第 6 行: '(' 附近有语法错误。

解决方案 »

  1.   


    CREATE PROCEDURE dbo.PrGetGuestBookBySize 
    @Page int,  --当前页 
    @PageSize int --每页显示条数 
    AS 
    SELECT TOP (@PageSize) * 
    FROM GuestBook 
    WHERE FSysId > (
    SELECT max (FSysId) 
    FROM (SELECT TOP ((@Page-1)*@PageSize) FSysId From GuestBook ORDER BY FSysId) AS T

    ORDER BY FSysId
      

  2.   

    这是2000的  不带数据库不报错  连数据库报错 在vss环境里
      

  3.   

    TRY-
    CREATE PROCEDURE dbo.PrGetGuestBookBySize 
    @Page int,  --当前页 
    @PageSize int --每页显示条数 
    AS 
    DECLARE @SQL VARCHAR(8000)
    SET @SQL='SELECT TOP ('+LTRIM(@PageSize)+') * FROM GuestBook WHERE FSysId > 
    (SELECT max (FSysId) FROM (SELECT TOP (('+LTRIM(@Page)+'-1)*'+LTRIM(@PageSize)+') FSysId 
    From GuestBook ORDER BY FSysId) AS T) ORDER BY FSysId'
    EXEC (@SQL) 
      

  4.   

    sql2000里top后面要跟数值,不能跟变量,所以要转换成动态SQL来执行