c# - how - Llamar a funciones SQL con valores de tabla desde.NET
sql connection string c# (1)
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, ¿pueden las funciones con valores de tabla llamarse como procedimientos almacenados, como pueden hacerlo las funciones con valores escalares? (por ejemplo, reproducir mi primer fragmento de código con una función de valor de tabla que se llama y obtener la tabla devuelta a través de un parámetro ReturnValue).
No porque necesita seleccionarlos. Sin embargo, puede crear un contenedor de proc almacenado, que puede anular el punto de tener una función de tabla.