SQL 2005 - проблема с временной таблицей - PullRequest
0 голосов
/ 20 июня 2011

Обратите внимание на следующее:

declare @abbrev varchar(20); set @abbrev='';
select pk_term into #t2 from #t1 where pk_term in (select distinct(fk_term) from tblabbreviations where abbreviation like @abbrev)
select @count=count(*) from #t2
print 'count t2='+convert(varchar(10),@count)

Предположим, что # t1 содержит 10 строк.Я хочу, чтобы # t2 содержал 10 строк, когда @abbrev равен '', или 10 строк или меньше (обычно меньше), когда, скажем, @ abbrev = 'av%'.

Я пробовал это:

но, конечно, я получаю сообщение об ошибке «В базе данных уже есть объект с именем« # t2 ».

Как мне обойти эту проблему?

Заранее большое спасибо

Rgds, Mark

1 Ответ

1 голос
/ 20 июня 2011

Вы используете CREATE TABLE #t2 для создания # t2 перед его использованием, вместо того, чтобы создавать его в результате SELECT ... INTO.

например

CREATE TABLE #t2 (
  pk_term VARCHAR(100) -- Or whatever...
)

IF ...
BEGIN
  INSERT INTO #t2
  SELECT something...
END
ELSE
BEGIN
  INSERT INTO #t2
  SELECT something else...
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...