创建存储过程时出现问题

Suk*_*van 2 t-sql sql-server stored-procedures

我正在创建一个存储过程但它会抛出一个错误.任何人都可以告诉我是否有什么我做错了.

CREATE TABLE tbl1 (ID int)
INSERT INTO tbl1 SELECT 1
CREATE TABLE tbl2 (ID int)
INSERT INTO tbl2 SELECT 2

CREATE PROCEDURE QOTD (@source INT)
AS 
BEGIN
 IF @source = 1 
 SELECT ID INTO #tmpID FROM tbl1 
 ELSE
 SELECT ID INTO #tmpID FROM tbl2 

 SELECT ID FROM #tmpID
END
Run Code Online (Sandbox Code Playgroud)

错误:数据库中已存在名为"#tmpID"的对象.

Dam*_*ver 7

有时T-SQL编译器会感到困惑,并且没有意识到只会跟踪IF的一侧.

CREATE PROCEDURE QOTD (@source INT)
AS 
BEGIN
 CREATE TABLE #tmpID(ID int)
 IF @source = 1 
 INSERT INTO #tmpID SELECT ID FROM tbl1 
 ELSE
 INSERT INTO #tmpID SELECT ID  FROM tbl2 

 SELECT ID FROM #tmpID
END
Run Code Online (Sandbox Code Playgroud)