|
Временные таблицы
|
|||
---|---|---|---|
#18+
При использовании временных таблиц нужна проверка на существование данной таблицы для данного пользователя, который мог ранее в сеансе инициировать ее. Как можно узнать имя таблицы чтобы проверить ее существование. Create table #TMPAktSv (id int) if exists (select * from tempdb..sysobjects where name like '#TMPAktSv%') ... else ... запрос возвращает имя таблиц=#TMPAktSv___________________________________________________________________________________________________________0000000008B2 Подскажите из чего оно формируется?? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2001, 20:14 |
|
Временные таблицы
|
|||
---|---|---|---|
#18+
А по подробнее можно? Чем вызвано такое желание? Временная таблица видна только для того запроса, который ее создал и держит. Так что из других запросов (даже того же пользователя) ты ее не увидишь. Как только запрос отработал - таблица пропадает. Так что опиши проблему подробнее, может тебе необходимо использовать глобальные(##) временные таблицы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2001, 10:24 |
|
Временные таблицы
|
|||
---|---|---|---|
#18+
Полный бред. Если речь идет о локальных временных табличках (#) то они автоматически грохаются по завершении работы процедуры, их зоздавшей. Это не касается глобальных (##) и созданных вне процедуры локальных таблиц. А вот пример проверки на существование таблицы: If object_ID('tempdb..#TempTable') Is not Null ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2001, 10:47 |
|
Временные таблицы
|
|||
---|---|---|---|
#18+
Спасибо за ответы. AnKa, насчет использования глобальных временных таблиц то скореее всего так и будет. Но все равно интересно из чего слагается имя локальной временной таблицы ?????? А насчет подробностей: Пользователь регистрируется в SQL Заполняет поля запроса Запускает процедуру - получает ответ Меняет параметры - Запускает процедуру - получает ответ NNNN....... Выходит из программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2001, 11:26 |
|
Временные таблицы
|
|||
---|---|---|---|
#18+
А бес его знает, из чего оно формируется. Сам когда-то разбираля - чуть мозги не поломал. Ната, я так понимаю, тебе необходимо хранить какую-то информацию только на время сеанса пользователя. Подумай, может стоит применить обыкновенную таблицу для всех пользователей с контрольным полем-логин пользователя. Но это подходит, если только у тебя все пользователи уникальны (не могут войти 2 пользователя под одним логином). Еще есть такая фича как @@SPID - уникальный номер сессии. Можно и его использовать. Допустим пользователь коннектится... 1.Сразу определяется его @@SPID. 2.Из таблицы удаляются все записи со значением этого @@SPID в контрольном поле (ведь это мог быть "мусор" с предыдущей сессии с этим же номером, которая уже закрылась). 3.Затем пользователь заполняет и обрабатывает записи только со своим значением @@SPID в контрольном поле. Во время расконнекта можно, конечно удалять после себя мусор, но это не обязательно, так как см. шаг.2. У меня была похожая ситуация, но у меня уникальность обеспечивается логином пользователя. Желаю удачи! ЗЫ. Паша, попей кофейку, успокойся. Не все ж такие умные, как ты. Конференция для того и создана, чтобы люди обменивались опытом, задавали интересующие вопросы, даже если они глупые, с точки зрения других. Все мы учились понемногу чему-небудь, да как-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2001, 11:53 |
|
|
start [/forum/topic.php?fid=46&msg=32001916&tid=1827408]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 148ms |
0 / 0 |