0

可能重复:
SQL IF 语句被忽略
使用 IF/ELSE IF 语句的奇数错误

我正在尝试插入一个诱惑表。但它抛出了一个错误。请帮忙

Declare @Live BIT = 'True'

Step 1:-  
If @Live = 'True'
    BEGIN 
        IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL  
        DROP TABLE #tempTable
        SELECT TOP 1 INTO #tempTable FROM Table1

    END
    ELSE

        IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL  
        DROP TABLE #tempTable
        SELECT TOP 5 INTO #tempTable FROM Table1

Step 2:-
IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL  
DROP TABLE #tempTable
If @Live = 'True'
    BEGIN         
        SELECT TOP 1 INTO #tempTable FROM Table1            
    END
    ELSE
        SELECT TOP 5 INTO #tempTable FROM Table1  

在 Step1 & Step2 中,错误显示为

“数据库中已经有一个名为 '#tempTable' 的对象。”

健康)状况:我必须将记录插入一个#tempTable

是否有其他替代方法可以实现此要求?

4

2 回答 2

2

我建议事先删除临时表,然后使用 aINSERT INTO而不是 aSELECT INTO

IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL  
BEGIN
    DROP TABLE #tempTable
END

CREATE TABLE #tempTable
(
   --columns go here
)

If @Live = 'True'
BEGIN         
    INSERT INTO #tempTable
    SELECT TOP 1 * FROM Table1            
END
ELSE
    INSERT INTO #tempTable
    SELECT TOP 5 * FROM Table1  
于 2012-06-29T13:49:53.577 回答
0

在运行查询之前运行此命令,因为已经有一个#tempTable

删除表#tempTable

并尝试此代码

IF OBJECT_ID('tempdb..#tempTable') 不为空删除表 #tempTable

create table #tempTable (a int) insert into #tempTable (a) select 1

从 #tempTable 中选择 *

于 2012-06-29T13:49:37.247 回答