Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.05.2001, 15:50
|
|||
|---|---|---|---|
|
|||
Почему временная таблица не видна в разных SP |
|||
|
#18+
Например Exec ('Select * Into #T1 from Table1') Select * From #T1 /* таблица в этой ситуации не видна*/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2001, 16:19
|
|||
|---|---|---|---|
|
|||
Почему временная таблица не видна в разных SP |
|||
|
#18+
Что-то сабж не вяжется с содержанием. Так все-таки "в разных сторедпроках" или так, как написано? Что касается по содержанию, то спасет отца русской демократии Exec ('Select * Into ##T1 from Table1') Select * From ##T1 Обрати внимание на ## - это ГЛОБАЛЬНАЯ временная таблица - видна по всей базе, живет, пока есть хоть одно обращение к ней. Есть еще вариантик Exec ('Select * Into #T1 from Table1 Select * From #T1 ') Если же по поводу "разных SP", то здесь дела обстоят так: Локальная временная таблица # живет только внутри запроса, который ее создал. Таким образом, ее видят и все SP, которые вызываются ИЗ ЭТОГО ЗАПРОСА. Однако ее не видно из параллельных процессов. (На то она и локальная ) Потому и не выполняется то, что ты написал. Exec - отдельный процесс. Отработал, и ариведерчи - табличка уничтожена. Следующий селект ее во-первых не видит (т.к. он является параллельным первому), а во вторых, и не может увидеть - ее уже нет. А вот такая конструкция работает: CREATE PROCEDURE AK_Q2 AS SELECT * FROM #T ---------------------- CREATE PROCEDURE AK_Q1 AS SELECT * INTO #T FROM Tab1 EXEC AK_Q2 -------------------- Потому что AK_Q2 вложена в AK_Q1. В общем, если что не так, коллеги поправят и дополнят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2001, 16:34
|
|||
|---|---|---|---|
|
|||
Почему временная таблица не видна в разных SP |
|||
|
#18+
Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2001, 16:44
|
|||
|---|---|---|---|
Почему временная таблица не видна в разных SP |
|||
|
#18+
Господа, локальная временная таблица привязана к пользовательскому процессу и видна только в этом контексте. обрывается процесс - удаляется таблица. действительно лучше всего использовать глобальную вр.табл и не заморачиваться на извраты (конечно если не надо гарантировать недоступность информации из таблицы кому-бы то ни было) в общем не вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2001, 17:01
|
|||
|---|---|---|---|
Почему временная таблица не видна в разных SP |
|||
|
#18+
это по поводу "разных процедур" этот совершенно академический пример прекрасно работает, а в нем два разных вызова разных процедур (но под одним и тем-же юзером) use pubs create proc maketable as select * into #table1 from titles go create proc readtable as select * from #table1 go exec maketable go exec readtable go комменты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2001, 17:21
|
|||
|---|---|---|---|
|
|||
Почему временная таблица не видна в разных SP |
|||
|
#18+
Alexander: попробуйте ваполнить maketable, а затем readtable, но уже из другого окна QA. Получилось? Очень сомневаюсь. Хотя пользователь - один и тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1826770]: |
0ms |
get settings: |
10ms |
get forum list: |
24ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 384ms |

| 0 / 0 |
