Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Временная таблица и IF ELSE / 13 сообщений из 13, страница 1 из 1
22.07.2002, 12:46:48
    #32038004
Alexey Kozlov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
Подскажите, пожалуйста, как обойти такую проблемку:
при проверке следующего 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
22.07.2002, 12:50:25
    #32038005
Sanek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
Ну нормально ... а что вы думали что так вот все просто ... :)
Шутка .. !
Попробуйте так :
Код: 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
22.07.2002, 12:51:43
    #32038007
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
попробуй временно поставить
DROP TABLE #tmp11
в начало запроса.
...
Рейтинг: 0 / 0
22.07.2002, 12:58:54
    #32038012
3JIA9I CyKA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
Задай явно структуру #tmp1 и сделай
insert into #tmp1 select ...
...
Рейтинг: 0 / 0
22.07.2002, 12:59:57
    #32038014
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
Скорее всего на момент выполнения IF ELSE у Вас уже существовала таблица #tmp1, в этом случае само собой выдается ошибка.
...
Рейтинг: 0 / 0
22.07.2002, 13:08:04
    #32038025
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
еще проще так
SELECT * INTO #tmp1 FROM MyTable
WHERE MyTable.Field1 = @MyBar or (@MyBar is null)
...
Рейтинг: 0 / 0
22.07.2002, 13:08:20
    #32038026
Sanek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
Такя ошибка будет выдаваться даже если написать примерно так :
Код: 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
22.07.2002, 13:10:50
    #32038028
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
2 SergSuper
я не уверен
если @MyBar - null
MyTable.Field1 = @MyBar то получим null
null or () - вероятно то же null
...
Рейтинг: 0 / 0
22.07.2002, 13:12:43
    #32038031
Sanek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
RE : SergSuper
КЛАСС !
Обалдеть , я до такого не додумался ...
PS
вполне серьезно ! КЛАСС !
...
Рейтинг: 0 / 0
22.07.2002, 13:17:45
    #32038033
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
2Rom

Null OR True = True

BOL - Accessing and Changing Relational Data - Transact-SQL Syntax Elements - Expressions - Null Values
...
Рейтинг: 0 / 0
22.07.2002, 13:20:31
    #32038034
AISOFT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
А #TMP1 И #TMP11 - ЭТО ОДНА ТАБЛИЦА ИЛИ РАЗНЫЕ?
...
Рейтинг: 0 / 0
22.07.2002, 13:26:49
    #32038036
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
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
22.07.2002, 13:28:40
    #32038037
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Временная таблица и IF ELSE
я малость заблуждался
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Временная таблица и IF ELSE / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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