Guest User

Untitled

a guest
Dec 12th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5.  
  6. CREATE PROCEDURE ContactsSelCollection
  7. @Page INT = NULL,
  8. @PageSize INT = NULL,
  9. @Sort NVARCHAR(45) = NULL,
  10. @Direction BIT = NULL,
  11. @TotalCount INT OUTPUT
  12. AS
  13. BEGIN
  14. SET NOCOUNT ON
  15. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  16.  
  17. DECLARE @StartNum int, @EndNum int
  18.  
  19. IF @Page IS NULL SELECT @Page = 1
  20. IF @PageSize IS NULL SELECT @PageSize = 50
  21. IF @Direction IS NULL SELECT @Direction = 0
  22. IF @Sort IS NULL SELECT @Sort = 'CreatedDate'
  23.  
  24. SELECT @Page = @Page - 1
  25. SELECT @StartNum = @Page * @PageSize + 1, @EndNum = (@Page + 1) * @PageSize
  26.  
  27. SET @TotalCount = (SELECT COUNT(*) FROM dbo.Contacts WITH (NOLOCK) WHERE IsActive = 1)
  28.  
  29. SELECT *
  30. FROM (
  31. SELECT ROW_NUMBER() OVER(ORDER BY
  32. CASE WHEN @Direction = 1 AND @Sort = 'FirstName' THEN FirstName END ASC, CASE WHEN @Direction = 0 AND @Sort = 'FirstName' THEN FirstName END DESC,
  33. CASE WHEN @Direction = 1 AND @Sort = 'LastName' THEN LastName END ASC, CASE WHEN @Direction = 0 AND @Sort = 'LastName' THEN LastName END DESC,
  34. CASE WHEN @Direction = 1 AND @Sort = 'City' THEN City END ASC, CASE WHEN @Direction = 0 AND @Sort = 'City' THEN City END DESC,
  35. CASE WHEN @Direction = 1 AND @Sort = 'CreatedDate' THEN CreatedDate END ASC, CASE WHEN @Direction = 0 AND @Sort = 'CreatedDate' THEN CreatedDate END DESC
  36. ) AS RowNum,
  37. ContactID, FirstName, LastName, Phone, Address, City, State, Zip, Country, Company, Website, EmailAddress, CreatedDate, ModifiedDate
  38. FROM dbo.Contacts
  39. WHERE IsActive = 1
  40. ) x
  41. WHERE x.RowNum BETWEEN @StartNum AND @EndNum
  42. END
  43. GO
Add Comment
Please, Sign In to add comment