问题调用函数SQL Server 2008

时间:2015-06-03 16:43:15

标签: sql sql-server-2008

我创建了以下函数来计算两点之间的距离:

  CREATE FUNCTION [fnCalcDistanceKM](@lat1 FLOAT, @lat2 FLOAT, @lon1 FLOAT,       @lon2 FLOAT)
  RETURNS FLOAT 
  AS
  BEGIN

RETURN ACOS(SIN(PI()*@lat1/180.0)*SIN(PI()*@lat2/180.0)+COS(PI()*@lat1/180.0)*COS(PI()*@lat2/180.0)*COS(PI()*@lon2/180.0-PI()*@lon1/180.0))*6371
END

但是当我运行以下select语句时......我收到错误:

13.077085'附近的语法不正确。

  select [fnCalcDistanceKM](13.077085,80.262675,13.065701,80.258916)

2 个答案:

答案 0 :(得分:2)

您应该使用架构名称调用它:

select dbo.[fnCalcDistanceKM](13.077085,80.262675,13.065701,80.258916)
  

必须至少使用两部分来调用标量值函数   功能的名称。有关多部分名称的详细信息,请参阅   Transact-SQL语法约定(Transact-SQL)。

答案 1 :(得分:0)

试试这个:SELECT * from [dbo]。[fnCalcDistanceKM] 13.077085,80.262675,13.065701,80.258916)