powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто-нибудь объяснит почему так нельзя?
3 сообщений из 3, страница 1 из 1
Кто-нибудь объяснит почему так нельзя?
    #32027942
B_52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В хранимке делаю след. конструкцию , перед IF в tempdb нет таблички #DIMA_BO_KR
IF @n1 = 1
BEGIN
SELECT ****
INTO #DIMA_BO_KR
FROM ***
END
ELSE
BEGIN
SELECT ****
INTO #DIMA_BO_KR
FROM ***
END

Почему MSSQL7.0 не дает сохранить эту хранимку
пока я не вынесу создание #DIMA_BO_KR выше IF .
Я понимаю, что он просматривает все сверху вниз,
и ругается что Already an object name #DIMA_BO_KR .
Но ведь это разные ветки IF !
...
Рейтинг: 0 / 0
Кто-нибудь объяснит почему так нельзя?
    #32027946
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это один batch - и этого достаточно. Какая "ветка" будет выполнена станет известно только в процессе выполнения, а на момент компиляции про это еще нет никакой информации.

Можно создать временную таблицу до ветвления и далее использовать INSERT INTO. Либо каким-то образом перенести условия проверки в тело единого запроса.
...
Рейтинг: 0 / 0
Кто-нибудь объяснит почему так нельзя?
    #32027953
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо разделить процедура на две
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Кто-нибудь объяснит почему так нельзя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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