Да! все время! (Должны признать, главным образом используемый, когда Вы строги, относительно которой таблицы Вы хотите звонить сначала)
На этом предмете: вот хорошее визуальное руководство по соединениям .
Предположительно, у вас есть следующий код, который выбирает из #temp и выдает ошибку?
Это зависит от области действия. ## temp - это глобальная временная таблица, доступная в других сеансах. #temp - это «локальная» временная таблица, доступная только для текущей области выполнения. sp_executesql работает в другой области, поэтому он вставляет данные в #temp, но если вы затем попытаетесь получить доступ к этой таблице вне вызова sp_executesql, он не найдет ее.
например Эта ошибка, поскольку #Test создается и виден только контексту sp_executesql:
EXECUTE sp_executesql N'SELECT 1 AS Field1 INTO #Test'
SELECT * FROM #Test
Вышеупомянутое работает с ## Test, поскольку он создает глобальную временную таблицу.
Это работает, поскольку SELECT является частью той же области.
EXECUTE sp_executesql N'SELECT 1 AS Field1 INTO #Test; SELECT * FROM #Test'
У меня будут следующие вопросы: