2013-04-26 34 views
1

我有這個功能,但它正確返回值,顯示在管理控制檯中的錯誤與波浪紅色下劃線:SQL函數正確返回,但顯示錯誤Management Studio中

Cannot find either column dbo or the user-defined function or aggregate

原因這是一個問題,我發現這是導致數據類型錯誤的原因。

這是函數:

CREATE FUNCTION CALC_DISTANCE(@A_LAT decimal(9,6), @A_LNG decimal(9,6), @B_LAT decimal(9,6), @B_LNG decimal(9,6)) 
RETURNS int 
AS 
BEGIN 
    DECLARE @source geography = geography::Point(@A_LAT, @A_LNG, 4326) 
    DECLARE @target geography = geography::Point(@B_LAT, @B_LNG, 4326) 
    DECLARE @MILES float = 0.00062137 
    DECLARE @D int = (SELECT @source.STDistance(@target) * @MILES * 1.08) 
    RETURN @D 
END 
GO 

DECLARE @A_LAT decimal(9,6) = '41.60054' 
DECLARE @A_LNG decimal(9,6) = '-93.60911' 
DECLARE @B_LAT decimal(9,6) = '25.77427' 
DECLARE @B_LNG decimal(9,6) = '-80.19366' 

SELECT dbo.CALC_DISTANCE(@A_LAT,@A_LNG,@B_LAT,@B_LNG) As 'CALC_DISTANCE (MILES)' 

我是新來的SQL函數所以這可能是一個新手的錯誤。

感謝您的幫助!

回答

2

如果此功能剛剛添加你需要「刷新智能感知緩存」:

從查詢編輯器窗口,Edit(Menu)->IntelliSense->Refresh Local Cache。當然,如果在緩存刷新之前添加了之前的,則只會檢測該功能:確保SSMS編輯器具有最新信息的最簡單方法是聲明該函數,刷新緩存並使用該函數。

如果它運行,那麼它的確定,SSMS只是混淆(可能是由於一個過時的高速緩存,按照以上) - 紅色的波浪線是客戶端神器只,並不總是反映查詢執行。

+0

是的,謝謝。這消除了錯誤味精。 – greener 2013-04-26 23:57:41

相關問題