Why are temporary tables not removed from tempdb in SQL Server?

前端 未结 4 535
遥遥无期
遥遥无期 2021-01-20 20:09

I have created one stored procedure with 7 temporary tables and each temp table is dropped at the end of their own work.

I am calling the SP from one web service and

相关标签:
4条回答
  • 2021-01-20 20:44

    To force dropping of temp tables use

    BEGIN TRY DROP #MyTable END TRY BEGIN CATCH END CATCH
    

    Ugly but effective. Use a separate TRY for each temporary table.

    0 讨论(0)
  • 2021-01-20 20:47

    I can't tell you why this is happening, but I have dealt with it before as well. Try cleaning up your tables at the beginning or end of the SP or using table variables.

    IF object_id('tempdb..#TableName') IS NOT NULL DROP TABLE #TableName
    
    0 讨论(0)
  • 2021-01-20 21:05
    IF object_id('tempdb..#TableName') IS NOT NULL DROP TABLE #TableName
    

    I think this will not work as we know sql server store temp table name with adding some extra character. if exists(select 1 from tempdb.sys.tables where name like '#TableName%') DROP TABLE #TableName

    0 讨论(0)
  • 2021-01-20 21:07

    This can occur in case if you have used many Temp tables and you have some Error in between of Your sp and your drop statement could not executed.
    So its always best practice to use

    IF object_id('tempdb..#TableName') IS NOT NULL DROP TABLE #TableName
    

    in start of SP.

    0 讨论(0)
提交回复
热议问题