여기 거래가 있습니다. 우리 데이터베이스에서는 보안 및 모듈성을 위해 테이블 값 함수에서 대부분의 읽기 (즉 select 문)를 래핑합니다. 그래서 하나 이상의 선택적 매개 변수를 정의하는 TVF가 있습니다. 내가 궐석 매개 변수로 TVF을 가지고 믿고ADO.NET에서 테이블 값 함수 호출에 대한 기본 키워드를 전달하는 방법
키워드 default
의 사용을 의무화 그래서 같은 TVF 호출 할 때 :
select * from fn_SampleTVF(123, DEFAULT, DEFAULT)
, 모든 쿼리 분석기에서 작동하지만, 그것을 실제로 시간이 올 때 ADO.NET에서이 요청을하면 실제로 렌더링 된 SQL에 default
이라는 단어를 넣는 SQL 매개 변수를 만드는 방법을 모르겠습니다.
String qry = "select * from fn_SampleTVF(@requiredParam, @optionalParam)";
DbCommand command = this.CreateStoreCommand(qry, CommandType.Text);
SqlParameter someRequiredParam = new SqlParameter("@requiredParam", SqlDbType.Int);
someRequiredParam.Value = 123;
command.Parameters.Add(someRequiredParam);
SqlParameter optionalParam = new SqlParameter("@optionalParam", SqlDbType.Int);
optionalParam.Value = >>>> WTF? <<<<
command.Parameters.Add(optionalParam);
그래서, 누군가가 어떤 아이디어가 어떻게 TVF에 default
를 전달할 수있어 :
지금은 대략 이런 일이?
최적의 솔루션이 기본 조항에서 사용하지 않도록하는 것입니다 TVF 매개 변수 정의, Kevin 제안에 따라 null을 전달하고 수동으로 TVF 본문에 기본값을 만듭니다. 다음은 내가 찾은 기사입니다 (Sprocs에 관한 것이지만 문제는 동일합니다). http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/3825fe1c-7b7e-4642-826b-ea024804f807 Microsoft와 관련된 다른 모든 작업과 마찬가지로이 작업을 수행하려면 절반 - 구운 해결 방법. – Mason