在存储过程中:
IF (condition1)
SELECT * INTO #temp FROM table1 WHERE name = 'Dave'
ELSE
SELECT * INTO #temp FROM table1 WHERE name = 'Greg'
创建存储过程时,它说"数据库中已经有一个名为'#temp'的对象"。它必须认为我正在创建两次相同的温度表。
有一个很好的方法吗?
我知道我可以插入#temp(....),但是有很多字段,我不想重新输入它们。
如果这很愚蠢,请不要-1
只是让我知道,我将删除
我不知道您的状况1
为什么不呢?
SELECT * INTO #temp
FROM table1
WHERE ( condition1 and name = 'Dave')
OR (!condition1 and name = 'Greg')
尝试以下:
SELECT * INTO #temp FROM table1 WHERE 1 = 0
IF (condition1)
INSERT INTO #temp SELECT * FROM table1 WHERE name = 'Dave'
ELSE
INSERT INTO #temp SELECT * FROM table1 WHERE name = 'Greg'
选择进入不会返回任何行,但它将用正确的列制作临时表。
您是否尝试过:
If (condition1)
INSERT INTO #temp
SELECT * FROM table1 where name = 'Dave'
ELSE
INSERT INTO #temp
SELECT * FROM table1 where name = 'Greg'