Это вопрос из двух частей и в то время как Kev Fairchil d дает хороший ответ на второй вопрос, который он полностью игнорирует первый - Почему возникает ошибка?
Ответ заключается в том, как работает препроцессор. Это
SELECT field-list INTO #symbol ...
раскладывается синтаксического дерева, которое непосредственно эквивалентно
DECLARE #symbol_sessionid TABLE(field-list)
INSERT INTO #symbol_sessionid SELECT field-list ...
и это ставит #symbol в таблицу имен локального осциллографа. Бизнес с _sessionid состоит в том, чтобы предоставить каждому пользовательскому сеансу частное пространство имен; если вы укажете два хэша (символ ##), это поведение будет подавлено. Мутирование и снятие расширения сеанса (прозрачно) прозрачно.
Итогом всего этого является то, что несколько предложений INTO #symbol создают несколько деклараций в том же объеме, что приводит к Msg 2714.