加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:40:48 所属栏目:MsSql教程 来源:网络整理
导读:我收到这个错误: Msg 195,Level 15,State 10,Line 1 ‘fnParseName’ is not a recognized built-in function name. 在这个查询中: SELECT fnParseName(DOCTORFIRSTNAME+' ' +DOCTORLASTNAME) FROM [PracticeandPhysician] 这是fnParseName的代码 create FU
我收到这个错误:

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

在这个查询中:

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

这是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

为什么我得到这个错误?

解决方法

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

请注意,你不能说:

SELECT dbo.TableValueFunction('foo');

你可以说:

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

但是,你可以说:

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读