我需要填写一个时间表以使用它来加入报告服务中的数据。通常,我使用以下代码执行此操作:
TRUNCATE TABLE tqTimeTable
DECLARE @CNT int
DECLARE @DATE datetime
DECLARE @END int
SET @CNT = 1
SET @DATE = 25567 -- 01.01.1970
SET @END = 20000 -- + 20k days => years 2024
WHILE(@CNT < @END)
BEGIN
INSERT INTO tqTimeTable (Tag, Monat, Jahr)
VALUES (DATEADD(day,@CNT,@DATE), MONTH(DATEADD(day,@CNT,@DATE)), YEAR(DATEADD(day,@CNT,@DATE)))
SET @CNT = @CNT + 1
END;
但这需要一段时间(在我的测试系统上大约需要 2 分钟),所以我希望有人遇到同样的问题并且比我解决得更好。当我从 .NET 连接触发此语句时,我需要一个更快的解决方案,或者如果没有一个解决方案来提高我的连接超时。