Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Наличие временной таблицы / 6 сообщений из 6, страница 1 из 1
10.01.2002, 19:32
    #32020487
Наличие временной таблицы
Всем привет,

Никак не могу разобраться, как определить существует ли временная таблица для текущего соединения или нет. В принципе, я ее виду в tempdb, но если у меня хотя бы два соединения с одинаковым именем временной таблицы, то тут начинается путаница. Ничего похожего в документации не нашел, но должно же быть какое-то решение?

Прошу прощения, если это FAQ. Если есть в BOL, прошу указать номер страницы.
Заранее спасибо.

PS SQL Server 7, если это имеет значение.
...
Рейтинг: 0 / 0
10.01.2002, 23:00
    #32020494
Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наличие временной таблицы
Временная таблица существует столько сколько существует соединение, или пока ее некильнут, оставив соединение открытым. А название у каждой таблицы уникальное и второй такой же быть неможет. Если один юзер создал временную таблицу с именем #My_table, и второй узер тут же создал свою таблицу #My_table, то обе будут жить в разных пространствах, потому что будут иметь уникальное имя типа #My_table_______________34536547 и #My_table___________6765624532....
...
Рейтинг: 0 / 0
11.01.2002, 04:24
    #32020503
Наличие временной таблицы
С этим все понятно, открытыми осталить только 2 вопроса - как бы мне научиться правильно формулировать вопросы и как узнать, что временная таблица уже существует. Ситуация такая: несколько процедур кидают данные в одну времменную таблицу. Будет ли вызвана хотя бы одна из этих процедур я не знаю, поэтому создавать таблицу заранее вроде бы как нет смысла. С другой стороны ни одна процедура не знает, существует ли таблица или ее надо прежде создать. Неужели нет способа определить сабж?
...
Рейтинг: 0 / 0
11.01.2002, 06:35
    #32020511
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наличие временной таблицы
select object_id('tempdb..#t1')

если NULL, то временная таблица с таким именем не существует
...
Рейтинг: 0 / 0
11.01.2002, 06:36
    #32020512
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наличие временной таблицы
>> Неужели нет способа определить сабж?

Да есть способ...
и даже не 1...
и опять же - 100 раз уже здесь про это писалось...
(а FAQ-а как не было, так и нет...
, ворчу...)

Способ первый - "тупо в лоб":

IF NOT EXISTS (SELECT * FROM tempdb..sysobjects WHERE type = 'u' AND name LIKE '#YourTable%') <- "процент" здесь в конце строчки с именем - важен...
CREATE TABLE #YourTable (.......)


Способ второй - "культурно":

IF NOT EXISTS (SELECT * FROM tempdb..sysobjects WHERE id = object_id('tempdb..#YourTable')) <- "процент" здесь в конце строчки с именем - не нужен...
CREATE TABLE #YourTable (.......)


Удачи!!
...
Рейтинг: 0 / 0
11.01.2002, 19:04
    #32020587
Наличие временной таблицы
Получилось! Всем спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Наличие временной таблицы / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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