我想在udf中的臨時表上運行選擇查詢。我找不到文檔說明這是不允許的,但是當我將tblDailyPricingAndVol
更改爲#dailyPricingAndVolBySymbol
(當然是我的臨時表)時,下面的存儲過程不會編譯。臨時表創建在更高級別(在存儲過程中在提前使用此功能)如果影響什麼...謝謝存儲過程SQL Server 2008,我可以在udf中的select語句中引用臨時表嗎?
編輯: 的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
再次感謝...新手後續問題,我是否創建臨時表的存儲過程中創建表類型? – StatsViaCsh 2012-02-18 17:12:59
+1用於討論用戶定義的表類型 – 2012-02-18 17:31:19
@StatsViaCsh - 我從來沒有嘗試過,但我懷疑這將工作。儘管如此,嘗試它並沒有什麼壞處。 – 2012-02-18 18:25:56