如何使用Column Name作为参数调用SELECT语句中的用户定义函数?

时间:2018-02-07 13:57:27

标签: sql sql-server

SQL Server 2005

我想调用在SELECT语句中返回table的UDF,如下所示。

select *, GetIptoCountry(IP_address) as country from tblInfo

但我收到了以下错误

  

' GetIptoCountry'不是公认的内置函数名称。

IP_addresstblInfo中的列。

如何像这样调用UDF?

2 个答案:

答案 0 :(得分:3)

您必须使用函数的完全限定名称,包括架构名称:

例如(如果scema为dbo),您可以使用dbo.GetIptoCountry()调用该函数:

select *, dbo.GetIptoCountry(IP_address) as country from tblInfo

更新:

根据您的上一条评论,您似乎有表值函数(返回表行),而不是标量值函数(返回值) ,所以可以这样做:

Select * from dbo.GetIptoCountry('your_ip_adress');

您的最终查询可能如下所示:

select * 
from tblInfo 
cross apply dbo.GetIptoCountry(IP_address)  tblCountry

答案 1 :(得分:0)

我的问题要简单得多。我已经重新连接到数据库。 SSMS仍然让我使用主数据库。

我只需单击下拉列表或运行“ USE MyDatabase”语句并确认。