Я получаю сообщение об ошибке: сообщение 2714, уровень 16, состояние 1, строка 16
В базе данных уже есть объект с именем "#mytemptable".
Есть способы обойти это, но удивляюсь, почему это происходит. Похоже, что SQL Server проверяет оба блока оператора if / else?
declare @choice int
select @choice = 1
if @choice = 1
begin
select 'MyValue = 1' AS Pick into #my_temp_table
end
else
begin
select 'MyValue <> 1' AS Pick into #my_temp_table
end
select * from #my_temp_table
drop table #my_temp_table
Если таблицы имеют разные имена, это работает. Или если я создаю временную таблицу и использую операторы Insert Into ..., которые также работают.