Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

não é um nome de função integrado reconhecido


É uma função com valor de tabela. Então você provavelmente quis dizer:
SELECT p.DOCTORFISTNAME, p.DOCTORLASTNAME, t.FirstName, t.Middle, t.LastName
  FROM dbo.[PracticeandPhysician] AS p
  CROSS APPLY dbo.fnParseName(p.DOCTORFIRSTNAME + ' ' + p.DOCTORLASTNAME);

Observe que você não pode dizer:
SELECT dbo.TableValueFunction('foo');

Mais do que você poderia dizer:
SELECT dbo.Table;
--or
SELECT dbo.View;

Você pode, no entanto, dizer:
SELECT * FROM dbo.fnParseName('foo bar');
--or
SELECT FirstName, Middle, LastName FROM dbo.fnParseName('foo bar');

(Não que eu tenha validado que sua função faz o que você pensa ou faz com eficiência.)

Por favor, sempre use o dbo. prefixo como outros sugeriram.