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

Откуда: Башкортостан
Сообщений: 48
Здравствуйте уважаемые!
Вопрос в следующем: Использую временнубю таблицу. Создаю ее в запросе при помощи инструкции create в нем два поля типа integer.
Наскольоко я знаю ниже приведенный код позволяет проверить существует ли данная таблица в базе tempdb иди ее нет и соответсвенно удалить ее для нового создания.
Каково было мое удивление, но это не работает, т.е. база остается

if exists (select * from sysobjects where id=object_id('dbo.#TempPrice'))
begin
drop table #TempPrice
end
go

а создаю так:
CREATE TABLE #TempPrice (
Id int NULL ,
NumberType int NOT NULL
)
GO

Почему это может не работать?

Заранее благодарен за все ответы...
30 май 03, 13:19    [216527]     Ответить | Цитировать Сообщить модератору
 Re: Про существовании временных таблиц  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
select object_id('tempdb..#TempPrice')
30 май 03, 13:24    [216538]     Ответить | Цитировать Сообщить модератору
 Re: Про существовании временных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Почему это может не работать?

Потому, что select * from sysobjects выбирает объекты из текущей базы. И функция OBJECT_ID () также ищет объект в текущей базе.
30 май 03, 13:44    [216584]     Ответить | Цитировать Сообщить модератору
 Re: Про существовании временных таблиц  [new]
gizar
Member

Откуда: Башкортостан
Сообщений: 48
Т.е. намек на то, что временные таблицы можно создавать и в текущей базе и в базе tempdb?
30 май 03, 13:59    [216612]     Ответить | Цитировать Сообщить модератору
 Re: Про существовании временных таблиц  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Временные таблицы всегда хранятся в tempdb.
30 май 03, 14:04    [216626]     Ответить | Цитировать Сообщить модератору
 Re: Про существовании временных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Нет, это намек на то, что если у вас активна база pubs, то
select * from sysobjects покажет объекты этой базы
и object_id('dbo.#TempPrice') вернет NULL, т.к. объекта dbo.#TempPrice в базе pubs нет
30 май 03, 14:05    [216630]     Ответить | Цитировать Сообщить модератору
 Re: Про существовании временных таблиц  [new]
gizar
Member

Откуда: Башкортостан
Сообщений: 48
СПАСИБО!!!
30 май 03, 15:42    [216816]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить