sql – 不是一个公认的内置函数名称

前端之家收集整理的这篇文章主要介绍了sql – 不是一个公认的内置函数名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我收到这个错误

Msg 195,Level 15,State 10,Line 1
‘fnParseName’ is not a recognized built-in function name.

在这个查询中:

SELECT  fnParseName(DOCTORFIRSTNAME+' ' +DOCTORLASTNAME) 
  FROM [PracticeandPhysician]@H_502_10@ 
 

这是fnParseName的代码

create FUNCTION [dbo].[fnParseName]
               (@FullName NVARCHAR(128))
RETURNS @FullNameParts TABLE  (FirstName  NVARCHAR(128),Middle     NVARCHAR(128),LastName   NVARCHAR(128))
AS
  BEGIN
    ... function body that populates @FullNameParts ...
    RETURN
  END@H_502_10@ 
 

为什么我得到这个错误

解决方法

这是一个表值函数.所以你可能意味着:
SELECT p.DOCTORFISTNAME,p.DOCTORLASTNAME,t.FirstName,t.Middle,t.LastName
  FROM dbo.[PracticeandPhysician] AS p
  CROSS APPLY dbo.fnParseName(p.DOCTORFIRSTNAME + ' ' + p.DOCTORLASTNAME);@H_502_10@ 
 

请注意,你不能说:

SELECT dbo.TableValueFunction('foo');@H_502_10@ 
 

你可以说:

SELECT dbo.Table;
--or
SELECT dbo.View;@H_502_10@ 
 

但是,你可以说:

SELECT * FROM dbo.fnParseName('foo bar');
--or
SELECT FirstName,Middle,LastName FROM dbo.fnParseName('foo bar');@H_502_10@ 
 

(不是我已经验证你的功能做你想的,或者这样做有效)

请其他人建议always use the dbo. prefix.

猜你在找的MsSQL相关文章