The
sys.columns
table contains a row for each column in each table in your database. If your query won't produce more than 2810 rows, that means you only have 2810 columns defined in your database.
There are various ways you could solve this. I'd be inclined to use Christian Graus's solution:
SQL Wizardry Part Eight - Tally Tables[
^]
WITH E1(N) AS
(
SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL
SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL
SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1
),
E2(N) AS
(
SELECT 1
FROM E1 a, E1 b
),
E4(N) AS
(
SELECT 1
FROM E2 a, E2 b
),
E8(N) AS
(
SELECT 1
FROM E4 a, E4 b
),
E(N) AS
(
SELECT Row_Number() OVER (ORDER BY n)
FROM E8
)
SELECT
DateAdd(day, N - 1, @FromDate),
N - 1,
DateDiff(day, @FromDate, @ToDate)
FROM
E
WHERE
N < DateDiff(day, @FromDate, @ToDate)
;