Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не создается процедура с пересозданием #temp  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8047
Невозможно создать процедуру вида:
CREATE PROCEDURE aaa AS

select top 10 * into #temp from bbb
drop table #temp
select top 5 * into #temp from bbb -- (ccc etc.)

GO

There is already an object named '#temp' in the database.

Это баг или фича?
9 май 05, 22:14    [1526682]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Или использовать разные таблицы, или динамику:
CREATE PROCEDURE aaa AS

select top 10 * into #temp from bbb
drop table #temp
exec('select top 5 * into #temp from bbb') -- (ccc etc.)
автор
Это баг или фича?

Кхех ... Дизайн.
9 май 05, 22:17    [1526684]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
ppp
Member

Откуда:
Сообщений: 278
select top 10 * into #temp from bbb
drop table #temp

go

select top 5 * into #temp from bbb
9 май 05, 22:33    [1526697]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
ppp
Member

Откуда:
Сообщений: 278
V predelah odnogo batch tak delatj nelzja.
9 май 05, 22:41    [1526703]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Kull Damned
Member [заблокирован]

Откуда: Князь Мышкин
Сообщений: 34357
Может автор скажет чего он хочет получить? :) А вообще за такое в BOL отправлять надобно...

Posted via ActualForum NNTP Server 1.1

9 май 05, 23:35    [1526739]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Dmitry Novikov
Member

Откуда: Nizhny Novgorod
Сообщений: 139
Гавриленко Сергей Алексеевич
Или использовать разные таблицы, или динамику:
CREATE PROCEDURE aaa AS

select top 10 * into #temp from bbb
drop table #temp
exec('select top 5 * into #temp from bbb') -- (ccc etc.)
Только юзать ее придется там же, внутри динамического SQL. Лучше наверное разные времянки.
Гавриленко Сергей Алексеевич

автор
Это баг или фича?

Кхех ... Дизайн.
Да уж, встречаются иногда несколько... эээ... спорные дизайнерские решения.
10 май 05, 00:19    [1526767]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8047
То есть я делаю вывод, что в пределах одной ХП (исполняемого пакета) либо команда drop для временных файлов не работает, либо это ошибка парсера.
Вот это я и хотел выянить, но ни одного ответа не получил ;) В нашей всеми любимой BOL ответа также нет.
10 май 05, 18:29    [1527718]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Glory
Member

Откуда:
Сообщений: 104760
Владислав Колосов
То есть я делаю вывод, что в пределах одной ХП (исполняемого пакета) либо команда drop для временных файлов не работает, либо это ошибка парсера.
Вот это я и хотел выянить, но ни одного ответа не получил ;) В нашей всеми любимой BOL ответа также нет.

Т.к. ошибка возникает на момент парсинга запроса, то значит это просто особенность работы парсера
10 май 05, 18:32    [1527725]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8047
Главное, что непонятно - почему? Собственно, цель состит в экономии дискового пространства и оперативной памяти.
10 май 05, 18:33    [1527727]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Glory
Member

Откуда:
Сообщений: 104760
Владислав Колосов
Главное, что непонятно - почему?

Ну не "нравится" это парсеру. Он же парсер, ему не дано предугадать, как именно будет выполнятся процедура. Да это и не его задача. Его задача - проверить синтаксис.

Владислав Колосов
Собственно, цель состит в экономии дискового пространства и оперативной памяти.

Ну так делайте TRUNCATE/DELETE
10 май 05, 18:41    [1527743]     Ответить | Цитировать Сообщить модератору
 Re: Не создается процедура с пересозданием #temp  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8047
Структура ведь может меняться :) Ну да не суть важно... Спишем все на парсер. Вопрос закрыт.
10 май 05, 18:44    [1527749]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить