Tôi có truy vấn này để phân trang kết quả và nó hoạt động tốt trên SQL Server 2012. Tuy nhiên tôi đã phải chuyển cơ sở dữ liệu của mình sang SQL Server 2008 và hiện tại quy trình được lưu trữ của tôi không hoạt động. Tôi đã thực hiện một số nghiên cứu và nhận ra rằng OFFSET
nó không hoạt động trong SQL Server 2008. Tôi nên sử dụng phương án nào bây giờ? Làm thế nào tôi đạt được chức năng tương tự với SQL Server 2008?
Đây là thủ tục lưu trữ của tôi:
CREATE PROCEDURE [dbo].[sp_JobSearch]
@EnteredKeyword nvarchar(200) = '',
@EnteredLocation nvarchar(200) = '',
@PageNumber INT = 1,
@PageSize INT = 40
AS
BEGIN
SELECT
MasterJob.Title, MasterJob.CompanyName,
MasterJob.ShortDesc, MasterJob.Url,MasterJob.PostedTime,
MasterJob.Location, JobBoard.JobBoardName
FROM
MasterJob
LEFT JOIN
JobBoard ON MasterJob.JobBoardId = JobBoard.JobBoardId
WHERE
(MasterJob.Title LIKE '%' + @EnteredKeyword + '%')
AND (MasterJob.Location LIKE '%' + @EnteredLocation + '%')
ORDER BY
[MasterJobId]
OFFSET @PageSize * (@PageNumber - 1) ROWS
FETCH NEXT @PageSize ROWS ONLY;
END
2
sqlservercentral.com/articles/T-Query/66030
—
Aaron Bertrand