sql >> Databasteknik >  >> RDS >> Sqlserver

är inte ett känt inbyggt funktionsnamn

Det är en tabellvärderad funktion. Så du menade förmodligen:

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

Observera att du inte kan säga:

SELECT dbo.TableValueFunction('foo');

Mer än du kan säga:

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

Du kan dock säga:

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

(Inte för att jag har validerat att din funktion gör vad du tycker, eller gör det effektivt.)

Vänligen använd alltid dbo. prefix som andra har föreslagit.



  1. hur får man den senaste posten eller posten med max motsvarande datum för alla distinkta värden i en kolumn i mysql?

  2. Hur dåligt är det att använda SELECT MAX(id) i MYSQL istället för mysql_insert_id() i PHP?

  3. Kolumn 'id' i fältlistan är tvetydig i YII

  4. få vanliga rader från en tabell mot valfri kolumn