SQL Server使用过程来计算列值

时间:2011-10-29 21:19:50

标签: sql sql-server sql-server-2008

我有一个程序,根据其他表中的某些值计算旅行价格。

程序如下:

create procedure CalculateTravelPrice(@ID int)
as
begin
return
(select SalaryForOneDay from Driver where driver.PersonID=@ID)+
(select SalaryForOneDay from Driver where driver.PersonID=@ID)
end

我正在尝试添加使用此过程计算值的列:

alter table RegisteredTravel
add PriceForTravel as (CalculateTravelPrice(RegTravelID))

但我收到错误

  

Msg 195,Level 15,State 10,Line 2
  “CalculateTravelPrice”不是公认的内置函数名称。“

所以问题是如何正确使用程序来计算这个值?这是一个很好的做法,还是有更好的方法?

1 个答案:

答案 0 :(得分:2)

您应该将proc转换为udf(用户定义的函数)。然后,您可以将其用于计算列。我认为不能以这种方式使用过程。