CREATE PROCEDURE [UsersList]
    (@RowsToSkip int)
AS
exec('     SELECT TOP 40
            [dbo].[Users].[UID], [dbo].[Users].[ULoginName], 
            [dbo].[Users].[UPower], [dbo].[Users].[UName], 
            [dbo].[Users].[UTel], [dbo].[Users].[UDepartment]
     FROM [dbo].[Users]
     WHERE [dbo].[Users].[UID] NOT IN
          (SELECT TOP '+@RowsToSkip+'
                  [dbo].[Users].[UID]
           FROM [dbo].[Users]
           ORDER BY [dbo].[Users].[UID])
     ORDER BY [dbo].[Users].[UID]
')

解决方案 »

  1.   

    CREATE PROCEDURE [UsersList]
        (@RowsToSkip int)
    ASdeclare @sql varchar(8000)
    set @sql=     
    'SELECT TOP 40
                [dbo].[Users].[UID], [dbo].[Users].[ULoginName], 
                [dbo].[Users].[UPower], [dbo].[Users].[UName], 
                [dbo].[Users].[UTel], [dbo].[Users].[UDepartment]
         FROM [dbo].[Users]
         WHERE [dbo].[Users].[UID] NOT IN
              (SELECT TOP ' +cast(@RowsToSkip as varchar)+'
                      [dbo].[Users].[UID]
               FROM [dbo].[Users]
               ORDER BY [dbo].[Users].[UID])
         ORDER BY [dbo].[Users].[UID])'
    select @sql
    exec(@sql)
      

  2.   

    CREATE PROCEDURE [UsersList]
        (@RowsToSkip int)
    ASdeclare @sql varchar(8000)
    set @sql=     
    'SELECT TOP 40
                [dbo].[Users].[UID], [dbo].[Users].[ULoginName], 
                [dbo].[Users].[UPower], [dbo].[Users].[UName], 
                [dbo].[Users].[UTel], [dbo].[Users].[UDepartment]
         FROM [dbo].[Users]
         WHERE [dbo].[Users].[UID] NOT IN
              (SELECT TOP ' +cast(@RowsToSkip as varchar)+'
                      [dbo].[Users].[UID]
               FROM [dbo].[Users]
               ORDER BY [dbo].[Users].[UID])
         ORDER BY [dbo].[Users].[UID]'
    exec(@sql)