← Tutti gli articoli

Paging for pedigree extraction - Horse Paging 1/3

11 July 2010  ·  TSQL · Article  ·  66 visite

Paging for pedigree extraction - Horse Paging 1/3

 
/****** Object:  StoredProcedure [dbo].[HorsesPaging]    Script Date: 10/31/2009 13:02:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[HorsesPaging]
	-- Add the parameters for the stored procedure here
	-- exec [dbo].[HorsesPaging] 1000, 20
	@StartRow bigint=1,
	@PageSize int=15,
	@NumeroTotaleRecord  bigint out
AS
BEGIN


DECLARE @HorseID bigInt


create table #tempHorses  (
    HorseID bigint NOT NULL PRIMARY KEY
)


SELECT @NumeroTotaleRecord=COUNT(*) FROM Horses



DECLARE PagingCursor CURSOR DYNAMIC READ_ONLY  FOR

SELECT HorseID FROM Horses --ORDER BY SortColumn


OPEN PagingCursor
FETCH RELATIVE @StartRow FROM PagingCursor INTO @HorseID

WHILE @PageSize > 0 AND @@FETCH_STATUS = 0
BEGIN
    INSERT #tempHorses(HorseID) VALUES(@HorseID)
    
    FETCH NEXT FROM PagingCursor INTO @HorseID
    SET @PageSize = @PageSize - 1
END

close PagingCursor
deallocate PagingCursor


SELECT * FROM vwHorses
inner JOIN #tempHorses temp ON vwHorses.HorseID = temp.HorseID
-- ORDER BY SortColumn

drop table #tempHorses




return @numerototalerecord

end
GO



Si è verificato un errore imprevisto. Ricarica

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.