Temporary table in SQL server causing ' There is already an object named' error

前端 未结 5 1052
难免孤独
难免孤独 2021-02-02 05:10

I have the following issue in SQL Server, I have some code that looks like this:

DROP TABLE #TMPGUARDIAN
CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30),
FRST_         


        
5条回答
  •  孤城傲影
    2021-02-02 05:55

    I usually put these lines at the beginning of my stored procedure, and then at the end.

    It is an "exists" check for #temp tables.

    IF OBJECT_ID('tempdb..#MyCoolTempTable') IS NOT NULL
    begin
            drop table #MyCoolTempTable
    end
    

    Full Example:

    CREATE PROCEDURE [dbo].[uspTempTableSuperSafeExample]
    AS
    BEGIN
        SET NOCOUNT ON;
    
    
        IF OBJECT_ID('tempdb..#MyCoolTempTable') IS NOT NULL
        BEGIN
                DROP TABLE #MyCoolTempTable
        END
    
    
        CREATE TABLE #MyCoolTempTable (
            MyCoolTempTableKey INT IDENTITY(1,1),
            MyValue VARCHAR(128)
        )  
    
        INSERT INTO #MyCoolTempTable (MyValue)
            SELECT LEFT(@@VERSION, 128)
            UNION ALL SELECT TOP 10 LEFT(name, 128) from sysobjects
    
        SELECT MyCoolTempTableKey, MyValue FROM #MyCoolTempTable
    
    
        IF OBJECT_ID('tempdb..#MyCoolTempTable') IS NOT NULL
        BEGIN
                DROP TABLE #MyCoolTempTable
        END
    
    
        SET NOCOUNT OFF;
    END
    GO
    

提交回复
热议问题