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

StackOverflow https://stackoverflow.com/questions/8987

  •  08-06-2019
  •  | 
  •  

Вопрос

Скалярные функции можно вызывать из .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).

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top