powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Временная таблица и IF ELSE
13 сообщений из 13, страница 1 из 1
Временная таблица и IF ELSE
    #32038004
Alexey Kozlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как обойти такую проблемку:
при проверке следующего T-SQL

IF @MyBar IS NULL
SELECT * INTO #tmp1 FROM MyTable

ELSE
SELECT * INTO #tmp1 FROM MyTable
WHERE MyTable.Field1 = @MyBar

SELECT * FROM #tmp1

DROP TABLE #tmp11

Выдает ошибку:
There is already an object named '#tmp1' in the database.

Почему, ведь '#tmp1' создается один раз, разве при проверке не учитывается IF ELSE ?
Можно ли обойтись без динамического запроса?
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038005
Sanek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну нормально ... а что вы думали что так вот все просто ... :)
Шутка .. !
Попробуйте так :
Код: plaintext
1.
2.
3.
4.
SELECT * 
INTO #tmp1 
FROM MyTable 
WHERE MyTable.Field1 = (case isnull(@MyBar, 0 ) when  0  then MyTable.Field1  else @MyBar end)
 
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038007
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй временно поставить
DROP TABLE #tmp11
в начало запроса.
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038012
3JIA9I CyKA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задай явно структуру #tmp1 и сделай
insert into #tmp1 select ...
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038014
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего на момент выполнения IF ELSE у Вас уже существовала таблица #tmp1, в этом случае само собой выдается ошибка.
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038025
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще проще так
SELECT * INTO #tmp1 FROM MyTable
WHERE MyTable.Field1 = @MyBar or (@MyBar is null)
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038026
Sanek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такя ошибка будет выдаваться даже если написать примерно так :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE PROCEDURE T AS

Select INTO #TEMP from table
DROP TABLE #TEMP
Select INTO #TEMP from table



...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038028
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergSuper
я не уверен
если @MyBar - null
MyTable.Field1 = @MyBar то получим null
null or () - вероятно то же null
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038031
Sanek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RE : SergSuper
КЛАСС !
Обалдеть , я до такого не додумался ...
PS
вполне серьезно ! КЛАСС !
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038033
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Rom

Null OR True = True

BOL - Accessing and Changing Relational Data - Transact-SQL Syntax Elements - Expressions - Null Values
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038034
AISOFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А #TMP1 И #TMP11 - ЭТО ОДНА ТАБЛИЦА ИЛИ РАЗНЫЕ?
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038036
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
This table shows the results of applying an OR operator to two Boolean operands.

OR TRUE UNKNOWN FALSE
TRUE TRUE TRUE TRUE
UNKNOWN TRUE UNKNOWN UNKNOWN
FALSE TRUE UNKNOWN FALSE
...
Рейтинг: 0 / 0
Временная таблица и IF ELSE
    #32038037
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я малость заблуждался
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Временная таблица и IF ELSE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]