Я пытаюсь выполнить запрос на выборку для временной таблицы в формате udf.Я не могу найти документацию, утверждающую, что это не разрешено, но хранимая ниже процедура не будет компилироваться, когда я изменю tblDailyPricingAndVol
на #dailyPricingAndVolBySymbol
(моя временная таблица, конечно. Временная таблица создается на более высоком уровне (вхранимой процедуры перед хранимой процедурой, которая использует эту функцию), если это влияет на что-либо ... спасибо заранее.
Редактировать : udf должен быть просто помощником для хранимой процедурыкоторый вызывает его .. Я пытаюсь запросить временную таблицу с ним из-за того, что он будет вызываться тысячи раз при каждом запуске. Данные, которые он извлекает и затем агрегирует, находится в таблице с миллионами строкПоэтому я сгруппировал данные в несколько сотен записей во временную таблицу. Это значительно ускорит выполнение функции, даже если для ее запуска все равно потребуется немало времени.
ALTER FUNCTION dbo.PricingVolDataAvailableToDateProvided
(@Ticker nchar(10),
@StartDate DATE,
@NumberOfDaysBack int)
RETURNS nchar(5)
AS
BEGIN
DECLARE @Result nchar(5)
DECLARE @RecordCount int
SET @RecordCount = (SELECT COUNT(TradeDate) AS Expr1
FROM (SELECT TOP (100) PERCENT TradeDate
FROM tblDailyPricingAndVol WHERE (Symbol = @Ticker) AND (TradeDate IN
(SELECT TOP (@NumberOfDaysBack) CAST(TradingDate AS DATE) AS Expr1
FROM tblTradingDays
WHERE (TradingDate <= @StartDate)
ORDER BY TradingDate DESC))
ORDER BY TradeDate DESC) AS TempTable)
IF @RecordCount = @NumberOfDaysBack
SET @Result = 'True'
ELSE
SET @Result = 'False'
RETURN @Result
END