여러 개의 연속적인 SELECT
문을 실행하는 저장 프로 시저를 작성하고 있습니다. ADO.NET을 통해이 절차를 실행하면 DataTable
개의 개체가 포함 된 DataSet
으로 끝납니다. 이것은 예상대로 작동합니다.SQL Server 결과 집합의 테이블에 이름 지정
현재 DataSet
에있는 테이블의 순서에 따라 스토어드 프로 시저의 SELECT
문 순서와 일치하지만 실제로이 순서는 중요하지 않습니다. 궁극적으로 절차를 유지해야하는 사람은 결과의 예상 순서를 알 필요가 없으며 응용 프로그램을 유지 관리하는 사람이 절차의 진술 순서를 알아야합니다.
내가 알고 싶은 것은 저장 프로 시저 자체 내에서 SELECT
문 각각의 결과에 이름을 할당 한 다음 ADO.NET을 통해 이러한 작업을 수행 할 수 있기 때문에 (각별히 원활하게) 각 개체에 액세스 할 수 있습니다. 그 주문 대신에 그 이름으로 표를?
// populate DataSet with results from stored proc
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
// now access one of the resulting DataTable via name
return ds.Tables["NamedResultFromTheProc"];
이렇게하려면 어떤 방법이 있습니까? 아니면 SELECT
명령문의 순서에 의존해야하며 인덱스로 항상 원하는 테이블에 액세스해야합니까?
그게 문제를 해결할 수 있지만, 그 규칙을 따르는 절차를 유지하는 사람에게 여전히 onice를 놓습니다. 나는 T-SQL에 의해 직접적으로 지원되는 더 엄격한 솔루션을 원했지만 그러한 기능이없는 것 같습니다. –