在函数内调用函数在SQL Server中

时间:2015-11-24 19:11:18

标签: sql-server user-defined-functions sql-server-2014

以下T-SQL代码旨在读取ID并检查Table_1中是否存在ID。如果它存在,则UDF Getname3返回一个表,该表由该特定ID的所有列组成,如果它不存在,我想调用一个名为m的函数,该函数用于打印Error。但是当我想在Getname3中调用m UDF时会出现问题。如何正确调用Getname3中的m。

谢谢

Create function m()
returns nvarchar(max)
as
begin
    return cast('Error happened here.' as int);
end
go

Create Function Getname3(@ID nchar(10))
returns @t Table (Melicode nchar(10), Name nvarchar(50), Id nchar(10), Tel nvarchar(max))
AS
Begin
   if (exists (select * from Table_1 where Melicode = @ID))
   begin
      insert @t
         select *  
         from Table_1 
         where Melicode = @ID
   end
   else
   begin
        dbo.m() // PROBLEM Here
   end

   return
end
go

select *
from dbo.Getname3('0410339127')

1 个答案:

答案 0 :(得分:0)

您无法在有效的SQL语句之外执行标量函数。尝试:

SELECT dbo.m()