tipo tabla stored procedimientos procedimiento pedir pasar parametros parametro crear con como arreglo array almacenados almacenado sql-server sql-server-2005 user-defined-functions

sql-server - procedimientos - pasar tabla como parametro en stored procedure sql server



Cómo pasar parámetros a la función de valores de tabla (3)

Quiero hacer algo como

select * from tvfHello(@param) where @param in (Select ID from Users)


Eso se ve bien para mí, excepto que siempre debe prefijar sus funciones con su esquema (generalmente dbo). Entonces la consulta debería ser:

SELECT * FROM dbo.tvfHello(@param) WHERE @param IN (SELECT ID FROM Users)


Los siguientes trabajos en la base de datos AdventureWorks:

CREATE FUNCTION dbo.EmployeeByID(@employeeID int) RETURNS TABLE AS RETURN ( SELECT * FROM HumanResources.Employee WHERE EmployeeID = @employeeID ) GO DECLARE @employeeId int set @employeeId=10 select * from EmployeeById(@employeeId) WHERE @EmployeeId in (SELECT EmployeeId FROM HumanResources.Employee)

EDITAR

Basado en la experiencia de Kristof, he actualizado esta muestra si intenta obtener múltiples valores que podría, por ejemplo, hacer:

select * from HumanResources.Employee e CROSS APPLY EmployeeById(e.EmployeeId) WHERE e.EmployeeId in (5,6,7,8)


Debe usar CROSS APPLY para lograr esto

select f.* from users u cross apply dbo.tvfHello(u.ID) f