"Bloco anônimo" é um termo da Oracle. Mas falando da coisa para sql server
Declare
....
Begin
begin trans
. . .
commit
End
Se eu enviar esse SQL de forma parametrizada para o servidor via ADO.NET, ele será armazenado em cache e reutilizado ou será recompilado todas as vezes?
Da minha breve leitura sobre Blocos Anônimos no Oracle, isso é essencialmente apenas uma consulta ad-hoc no SQL Server. Sim, as consultas ad-hoc são armazenadas em cache no cache do plano de consulta do SQL Server e, portanto, nas execuções subsequentes não serão recompiladas enquanto permanecerem no cache. (O cache do plano de consulta possui mecanismos para remover planos antigos e/ou raramente usados do cache com base na ocupação do servidor.)