Execute vários comandos SQL em uma viagem de ida e volta

Estou criando um aplicativo e quero agrupar várias consultas em uma única viagem de ida e volta ao banco de dados. Por exemplo, digamos que uma única página precise exibir uma lista de usuários, uma lista de grupos e uma lista de permissões.

Então, eu armazenei procs (ou apenas comandos sql simples, como "select * from Users"), e quero executar três deles. No entanto, para preencher esta página, eu tenho que fazer três viagens de ida e volta.

Agora eu poderia escrever um único processo armazenado ("getUsersTeamsAndPermissions") ou executar um único comando SQL "select * from Users; exec getTeams; selecione * from Permissions".

Mas eu queria saber se havia uma maneira melhor de especificar para realizar três operações em uma única viagem de ida e volta. Os benefícios incluem ser mais fácil para o teste de unidade e permitir que o mecanismo de banco de dados paralelize as consultas.

Estou usando o C # 3.5 e o SQL Server 2008.

questionAnswers(6)

yourAnswerToTheQuestion