Прежде всего: +1 к ответу Пола Сасика.
Теперь, чтобы ответить на ваш вопрос (если вы все еще хотите придерживаться своего подхода).
Возможные причины для беспокойства при использовании столбцов VARBINARY (MAX) ( из MSDN )
Если вы отбросите таблицу, содержащую столбец VARBINARY (MAX) с
Атрибут FILESTREAM, любые данные, хранящиеся в файловой системе, не будут
удален.
Если вы решите использовать свой подход, я бы использовал глобальные временные таблицы. Они должны получать DROPped автоматически, когда больше нет подключений, использующих их, но вы все равно можете DROP их явно.
В своем запросе вы можете проверить, существуют они или нет, и создать их, если они больше не существуют.
IF OBJECT_ID('mydb..##temp') IS NULL
-- create temp table and perform your query
Таким образом, у вас есть большая часть логики для выполнения ваших запросов и совместного управления временными таблицами, что должно сделать его более удобным для обслуживания. Кроме того, они созданы для того, чтобы их создавать и удалять, поэтому можно с уверенностью предположить, что SQL Server никак не повлияет на создание и удаление многих из них.