powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
6 сообщений из 6, страница 1 из 1
Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
    #32017732
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ !!!
Есть такая проблема : в хранимой процедуре во временную таблицу #_Tmp производится выборка по условию т.е. если условие выполняется делаем один SELECT INTO, а если нет то другой. Далее работаем с временной таблицей. Проблема в том что когда я пытаясь сохранить эту процедуру Enterprise Manager выдает ошибку - “Error 2714. There is already an object named ‘#_Tmp’ in the database” .

Вот примерно такая процедура ->

CREATE PROCEDURE BalanceByKontragent @ID_Kontragent bigint

--выбираем все данные необходимые для расчета
IF @ID_Kontragent=0
SELECT * INTO #_Tmp FROM Balance
ELSE
SELECT * INTO #_Tmp FROM Balance WHERE ID_Kontragent=@ID_Kontragent
END

...

Как энту проблему можно обойти ? Заранее благодарю.
...
Рейтинг: 0 / 0
Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
    #32017733
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT * INTO #_Tmp FROM Balance WHERE ID_Kontragent=CASE WHEN @ID_Kontragent=0 THEN ID_Kontragent ELSE @ID_Kontragent END
...
Рейтинг: 0 / 0
Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
    #32017736
Khazzar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно формировать запрос как текстовую строку и выполнять ее через exec.
...
Рейтинг: 0 / 0
Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
    #32017738
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Khazzar

После выполнения exec('SELECT * INTO #_Tmp ...') временная таблица #_Tmp автоматически удалится т.к.
"A local temporary table created in a stored procedure is dropped automatically when the stored procedure completes. The table can be referenced by any nested stored procedures executed by the stored procedure that created the table. The table cannot be referenced by the process which called the stored procedure that created the table."

Т.е. можно создать #_Tmp до выполнения exec.
...
Рейтинг: 0 / 0
Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
    #32017739
JINX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала вызывайте Select INTO, а потом, когда времянная таблица уже будет существовать-
INSERT INTO #_Tmp SELECT * FROM Balance WHERE ID_Kontragent=@ID_Kontragent
...
Рейтинг: 0 / 0
Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
    #32017841
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще вместо select into использовать insert into... Только пальчиками придется пошевелить - скрипт длиннее.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Не могу в хранимой процедуре сделать две выбрки в одну временную таблицу (#Name)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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