在 SQL Server 存储过程中使用临时表时,首选做法是;
1)创建临时表,填充它,使用它然后删除它
CREATE TABLE #MyTable ( ... )
-- Do stuff
DROP TABLE #MyTable
2)检查它是否存在,如果存在则删除它,然后创建并使用它
IF object_id('tempdb..#MyTable') IS NOT NULL
DROP TABLE #MyTable
CREATE TABLE #MyTable ( ... )
3) 创建它并在超出范围时让 SQL Server 清理它
CREATE TABLE #MyTable ( ... )
-- Do Stuff
我在这个答案及其相关评论中读到,这在临时表被重用的情况下很有用,SQL Server 将截断表但保留结构以节省时间。
我的存储过程可能会被非常频繁地调用,但它只包含几列,所以我不知道这在我的情况下到底有多有利。