if block fails to create temp table in a procedure
-
01-11-2019 - |
Question
I'm attempting to do this in a procedure:
DECLARE @a bit = 1;
BEGIN
SELECT * INTO #aTemp FROM OPENROWSET( ... );
IF @a = 0
BEGIN
SELECT ... INTO #bTemp FROM #aTemp;
END
ELSE
BEGIN
SELECT ... INTO #bTemp FROM #aTemp;
END
END
I get the error:
Msg 2714, Level 16, State 1, Line 10
There is already an object named '#bTemp' in the database.
Why is this happening and is there a work around?
Update
I've attempted to add a DROP
statement as suggested here, but it still does not work:
DECLARE @a bit = 1;
BEGIN
SELECT * INTO #aTemp FROM OPENROWSET( ... );
IF @a = 0
BEGIN
IF OBJECT_ID('[tempdb]..#bTemp') IS NOT NULL
BEGIN
DROP TABLE #bTemp;
END
SELECT ... INTO #bTemp FROM #aTemp;
END
ELSE
BEGIN
IF OBJECT_ID('[tempdb]..#bTemp') IS NOT NULL
BEGIN
DROP TABLE #bTemp;
END
SELECT ... INTO #bTemp FROM #aTemp;
END
END
No correct solution
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange