Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

non è un nome di funzione integrato riconosciuto

È una funzione con valori di tabella. Quindi probabilmente intendevi:

SELECT p.DOCTORFISTNAME, p.DOCTORLASTNAME, t.FirstName, t.Middle, t.LastName
  FROM dbo.[PracticeandPhysician] AS p
  CROSS APPLY dbo.fnParseName(p.DOCTORFIRSTNAME + ' ' + p.DOCTORLASTNAME);

Nota che non puoi dire:

SELECT dbo.TableValueFunction('foo');

Non più di quanto potresti dire:

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

Puoi, tuttavia, dire:

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

(Non che io abbia convalidato che la tua funzione faccia ciò che pensi o lo faccia in modo efficiente.)

Per favore usa sempre il dbo. prefisso come altri hanno suggerito.