.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);
내 질문은 테이블 값 함수를 스칼라 값 함수처럼 저장 프로시저로 호출 할 수 있습니까? (예를 들어, 테이블 값 함수가 호출되고 반환 값 매개 변수를 통해 반환 된 테이블을 가져 오는 첫 번째 코드 스 니펫을 복제하십시오).
아니요, 선택해야 하기 때문입니다. 그러나 저장 프로시저 래퍼를 만들 수 있지만 테이블 함수를 사용하는 것이 무의미할 수 있습니다.