可能重复:
SQL IF statement is being ignored
Odd error using IF/ELSE IF statements
我正在尝试插入一个temptable。但这是一个错误。请帮忙
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
还有其他替代品可以达到这个要求吗?
答案 0 :(得分:2)
我建议先申报临时表,然后再使用INSERT INTO
代替SELECT 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
答案 1 :(得分:0)
在运行查询之前运行此命令,因为已经存在#tempTable
DROP TABLE #tempTable
并尝试此代码
如果OBJECT_ID('tempdb ..#tempTable')不为空 drop table #tempTable
创建表#tempTable(一个int) 插入#tempTable(a)选择1
从#tempTable
中选择*