У меня есть запрос MS SQL CTE, из которого я хочу создать временную таблицу. Я не уверен, как это сделать, поскольку это дает Invalid Object name
ошибку.
Ниже весь запрос для справки
SELECT * INTO TEMPBLOCKEDDATES FROM
;with Calendar as (
select EventID, EventTitle, EventStartDate, EventEndDate, EventEnumDays,EventStartTime,EventEndTime, EventRecurring, EventStartDate as PlannedDate
,EventType from EventCalender
where EventActive = 1 AND LanguageID =1 AND EventBlockDate = 1
union all
select EventID, EventTitle, EventStartDate, EventEndDate, EventEnumDays,EventStartTime,EventEndTime, EventRecurring, dateadd(dd, 1, PlannedDate)
,EventType from Calendar
where EventRecurring = 1
and dateadd(dd, 1, PlannedDate) <= EventEndDate
)
select EventID, EventStartDate, EventEndDate, PlannedDate as [EventDates], Cast(PlannedDate As datetime) AS DT, Cast(EventStartTime As time) AS ST,Cast(EventEndTime As time) AS ET, EventTitle
,EventType from Calendar
where (PlannedDate >= GETDATE()) AND ',' + EventEnumDays + ',' like '%,' + cast(datepart(dw, PlannedDate) as char(1)) + ',%'
or EventEnumDays is null
order by EventID, PlannedDate
option (maxrecursion 0)
Я был бы признателен за точку в правильном направлении или если бы я мог создать временную таблицу из этого запроса CTE
sql
sql-server
common-table-expression
Обучение
источник
источник
Ответы:
Образец DDL
Убедитесь, что таблица удалена после использования
источник
На самом деле формат может быть довольно простым - иногда нет необходимости предварительно задавать временную таблицу - она будет создана из результатов выбора.
Поэтому, если вы не хотите разных типов или очень строгие в определении, держите вещи простыми Также обратите внимание, что любая временная таблица, созданная внутри хранимой процедуры, автоматически удаляется по завершении ее выполнения. Если хранимая процедура A создает временную таблицу и вызывает хранимую процедуру B, то B сможет использовать временную таблицу, созданную A.
Тем не менее, обычно считается хорошей практикой кодирования, чтобы в любом случае явно отбрасывать каждую временную таблицу, которую вы создаете.
источник
select * into #temp
но во второй раз при выполнении выдается ошибка: «Таблица #temp уже существует в базе данных» .В
SELECT ... INTO
потребности быть в избранных от КТР.источник
Как использовать TempTable в хранимой процедуре?
Вот шаги:
СОЗДАТЬ ТАБЛИЦУ ТЕМПЕРАТУР
ВСТАВИТЬ ТЕМП. ВЫБРАТЬ ДАННЫЕ В ТЕМП.
SELECT TEMP TABLE (Теперь вы можете использовать этот запрос выбора)
ЗАКЛЮЧИТЕЛЬНЫЙ ШАГ БРОСАЙТЕ СТОЛ
Я надеюсь, это поможет. Просто и понятно :)
источник
Здесь с помощью предложения into создается таблица
источник
Вот одно небольшое изменение в ответах на запрос, который создает таблицу при выполнении (т.е. вам не нужно сначала создавать таблицу):
источник