Подтвердить что ты не робот

Вызов табличных функций SQL из .NET.

Скалярнозначные функции можно вызывать из .NET следующим образом:

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;

Я также знаю, что табличные функции могут быть вызваны аналогичным образом, например:

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

Мой вопрос в том, могут ли табличные функции вызываться как хранимые процедуры, например, скалярнозначные функции? (например, повторите мой первый фрагмент кода с вызываемой табличной функцией и получением возвращенной таблицы через параметр ReturnValue).

4b9b3361

Ответ 1

Нет, потому что вам нужно их выбрать. Однако вы можете создать хранимую оболочку proc, которая может привести к потере функции таблицы.