Я попытался использовать OPTION (MAXRECURSION 0)
для создания списка дат. Это кажется неподдерживаемым. Есть ли обходной путь для этой проблемы?Могу ли я использовать рекурсию в представлении Sql Server 2005?
EDIT, чтобы объяснить, что я на самом деле хочу сделать:
У меня есть 2 таблицы.
table1: INT будний день, BOOL доступны
table2: дата даты и времени, BOOL доступны
Я хочу, чтобы результат: view1: дата (здесь все дни в этом году), доступный (от table2 или таблица1, если нет в таблице 2).
Это означает, что я должен применить присоединение к дате в будний день. Я надеюсь, что это объяснение понятно, потому что я фактически использую больше таблиц с большим количеством полей в запросе.
Я нашел этот код для создания рекурсии:
WITH Dates AS
(
SELECT cast('2008-01-01' as datetime) Date
UNION ALL
SELECT Date + 1
FROM Dates
WHERE Date + 1 < DATEADD(yy, 1, GETDATE())
)
Я решил эту проблему, создав дополнительную таблицу в базе данных с указанием даты и DAYOFWEEK в виде столбцов. Я установил ошибку в миллионе в 2037 году для следующего разработчика в то время ... – Paco 2008-11-01 16:01:15