Komentarz Joe Zacka pomógł mi zrozumieć, co się tutaj dzieje. Bardzo jasne i zwięzłe wyjaśnienie. Powinna to być odpowiedź, aby była bardziej widoczna dla osób przybywających tutaj z wyszukiwarki Google.
SqlCommand wywołuje sql z parametrami za pośrednictwem sp_executesql, gdy istnieją parametry, co oznacza, że tabela tymczasowa jest tworzona wewnątrz (a następnie czyszczona) procedury składowanej, więc nie jest dostępna dla przyszłych wywołań — nawet jeśli współdzielą to samo połączenie