如果您不想依賴表或遞歸CTE,請使用幾個交叉連接。如果你的序列需要更多的數字,只需添加更多的交叉連接 - 你可以快速獲得幾百萬的數據。
DECLARE @start_date AS DATETIME = '2012-02-02';
WITH L0 AS (SELECT 1 AS C UNION ALL SELECT 1), -- 2
L1 AS (SELECT L0.C FROM L0 CROSS JOIN L0 AS B), -- 4
L2 AS (SELECT L1.C FROM L1 CROSS JOIN L1 AS B), -- 16
L3 AS (SELECT L2.C FROM L2 CROSS JOIN L2 AS B), -- 256
L4 AS (SELECT L3.C FROM L3 CROSS JOIN L3 AS B), -- 65536
L5 AS (SELECT L4.C FROM L4 CROSS JOIN L4 AS B), -- Alot
N AS (SELECT ROW_NUMBER() OVER(ORDER BY L5.C) AS n FROM L5),
D AS (SELECT DATEADD(SECOND, n - 1, @start_date) AS d, n FROM N)
SELECT d from D where n <= (60 * 60 * 24)
我剛剛嘗試發佈此文件時遇到了四次重新驗證碼。 PLZ評論,如果你能看到它。 (嘆氣) – 2012-02-02 22:18:02
你的帖子可以看到! – Akhil 2012-02-02 22:19:27
你可以使用遞歸,但不幸的是SQL Server中的最大遞歸計數是100 – Akhil 2012-02-02 22:21:46