如果您不想依赖表或递归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