Advertisement
Guest User

Untitled

a guest
Jul 18th, 2014
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.69 KB | None | 0 0
  1. IF object_id('DateRange') IS NOT NULL
  2.     DROP TABLE DateRange
  3. GO
  4. CREATE TABLE DateRange (id INT IDENTITY, dt DATE);
  5. CREATE INDEX IX_DateRange_Dt ON DateRange(dt);
  6.  
  7. ; WITH  list AS
  8.         (
  9.         SELECT  CAST('2000-01-01' AS DATE) AS dt
  10.         UNION ALL
  11.         SELECT  dateadd(DAY, 1, dt)
  12.         FROM    list
  13.         WHERE   dt < '2009-12-31'
  14.         )
  15. INSERT  dbo.DateRange
  16.         (dt)
  17. SELECT  dt
  18. FROM    list
  19. OPTION  (maxrecursion 0);
  20.  
  21. -- Uses index seek
  22. SELECT  *
  23. FROM    DateRange
  24. WHERE   dt BETWEEN '2005-01-01' AND '2005-01-05'
  25. OPTION  (recompile)
  26.  
  27. -- Uses table scan
  28. SELECT  *
  29. FROM    DateRange
  30. WHERE   dt BETWEEN '2005-01-01' AND '2005-01-06'
  31. OPTION  (recompile)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement