2011-08-05 10 views
44

Tengo la siguiente función que devuelve la tabla.Cómo ejecutar la función de valor de tabla

create Function FN(@Str varchar(30)) 
    returns 
    @Names table(name varchar(25)) 
    as 
    begin 

     while (charindex(',', @str) > 0) 
     begin 
     insert into @Names values(substring(@str, 1, charindex(',', @str) - 1)) 
    set @str = substring(@str, charindex(',', @str) + 1, 100) 
     end 
     insert into @Names values(@str) 

     return 
    end 

Podría alguien por favor me explique cómo ejecutar esta función.

+4

Detener etiquetado tanto MySQL y SQL Server cuando se hacen preguntas que se relacionan con SQL Server sólo – gbn

+2

@gbn: Gracias OKI de sugerencia. – Shine

Respuesta

80

Se supone que se debe SELECCIONAR de TVF (table-valued function). Prueba esto:

select * from FN('myFunc') 
+0

funcionó como un encanto! –

+1

Tenga en cuenta que, dependiendo del servidor/instalación, es posible que necesite identificar el esquema, p. seleccionar * de dbo.FN ('myFunc') – apc

38

Puede ejecutarlo tal como se selecciona una tabla usando SELECT cláusula. Además, puede proporcionar parámetros entre paréntesis.

Pruebe con más adelante sintaxis:

SELECT * FROM yourFunctionName(parameter1, parameter2) 
Cuestiones relacionadas