Pregunta

Las funciones con valores escalares se pueden llamar desde .NET de la siguiente manera:

SqlCommand cmd = new SqlCommand("testFunction", sqlConn); //testFunction is scalar
cmd.CommandType = CommandType.StoredProcedure;  
cmd.Parameters.Add("retVal", SqlDbType.Int);
cmd.Parameters["retVal"].Direction = ParameterDirection.ReturnValue;
cmd.ExecuteScalar();
int aFunctionResult = (int)cmd.Parameters["retVal"].Value;

También sé que las funciones con valores de tabla se pueden llamar de manera similar, por ejemplo:

String query = "select * from testFunction(param1,...)"; //testFunction is table-valued
SqlCommand cmd = new SqlCommand(query, sqlConn);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(tbl);

Mi pregunta es: ¿se pueden llamar funciones con valores de tabla como procedimientos almacenados, como se puede hacer con las funciones con valores escalares?(por ejemplo, replicar mi primer fragmento de código llamando a una función con valores de tabla y obteniendo la tabla devuelta a través de un parámetro ReturnValue).

¿Fue útil?

Solución

No porque necesitas seleccionarlos.Sin embargo, puede crear un contenedor de proceso almacenado, lo que puede anular el objetivo de tener una función de tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top