我收到这个错误:
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.