|
|
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Как создать временную таблицу по аналогии с create global temporary в ASA ? Чтобы данные жили на время сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 14:12 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
1 create table #yourtemptable (fld1 тип1, fld2 тип2.....) -или - 2 - select fld1,fld2,fldn into #yourtemptable from sometable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 14:37 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
vooo1 create table #yourtemptable (fld1 тип1, fld2 тип2.....) -или - 2 - select fld1,fld2,fldn into #yourtemptable from sometable sorry, попутал т к вопрос стоял о сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 14:43 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
По аналогии с MSSQL думаю так: Код: plaintext 1. Данные такой таблицы будут видеть все сессии. 2. Нужно при ее создании проверять в TempDB что она еще не создана в какой либо другой сессии, иначе получим ошибку, что она уже была создана. 3. Для разделения данных по сессиям в ней необходимо сделать поле SPID, в которой хранить для каждой сессии данные подставляя в это поле @@SPID и по нему фильтруя по сессиям. 4. Если сессия, которая создала эту таблицу дисконектиться, то она удалиться и другие сессии могут забыть, что они там хранили данные. 5. При отключении сессий, хранящих данные в ней, они обнуляться в такой таблице не будут на время жизни этой таблицы (т.е. до дисконекта создавшей ее сессии или же перегрузки сервера). Исходя из вышеперечисленного, если все вышесказанное по MSSQL применимо к ASE, то мой совет забыть про ASA-шные глобальные времянки и вместо них пользоваться постоянными таблицами, разделяя в них данные по @@SPID и вызывая очистку таких таблиц явно из клиентского приложения или агентов, которые периодически могут проверять наличие в таких таблицах SPID, отсутствующих в списке подключенных сессий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 15:13 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
По аналогии с MSSQL думаю так: CREATE TABLE ##Table1 (...) К сожалению с ASE 12.5 не работал, но в ASE 11.5 нет такой аналогии В 11.5 работает конструкция create table tempdb..tableName<fld list> И как правильно сказали с данной таблицей нужно работать по SPID. Но опять таки - это ASE 11.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 15:22 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
1) #table -временные таблицы и так живут на время сессии , за некоторыми исключениями, а именно, временные таблицы, созданные в процедурах и триггерах, автоматически удаляются по выходу из них. 2) ##table - временных таблиц (как в MSSQL) в ASE нет. Напоминаю, что в MSSQL их видят ВСЕ пользователи, и после ухода последней сессии, которая их использовала, таблица автоматически удаляется. Ну или что-то в этом роде. 3) Можно создавать невременную таблицу в tempdb (БЕЗ ДИЕЗА), только при этом ее будут видеть все ползователи и ее надо вручную удалять. 4) Можно использовать концепцию псевдовременной таблицы, при этом в PK таблицы добавляется поле, заполняемое @@spid-ом данной сессии и данная сессия использует только свои записи. Кстати, в ASE со времен 11.5 в отношении временных таблиц ничего не изменилось, за исключением возможности иметь несколько баз tempdb для разных пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 09:59 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv1) #table -временные таблицы и так живут на время сессии , за некоторыми исключениями, а именно, временные таблицы, созданные в процедурах и триггерах, автоматически удаляются по выходу из них. похоже это то, что нужно т.е. один раз я создаю таблицу #tname , а потом каждый коннект будет в ней видеть только "свои" данные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 11:14 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Vovaka MasterZiv1) #table -временные таблицы и так живут на время сессии , за некоторыми исключениями, а именно, временные таблицы, созданные в процедурах и триггерах, автоматически удаляются по выходу из них. похоже это то, что нужно т.е. один раз я создаю таблицу #tname , а потом каждый коннект будет в ней видеть только "свои" данные ? Нет. Вы каждый раз при коннекте к БД должны создать такую таблицу и она будет жить в пределах видимости, т.е. если она просто создана в коннекте, то она проживет до дисконнекта, если создана в ХП или триггере, то проживет до выхода из тела процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 11:58 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Дополнение - в ASE и MSSQL в отличие от ASA просто нужно привыкнуть, что некую часть логики должно выполнять клиентское приложение - создавать времянки, вызывать для инициализации нужные ХП и т.д. Вывести все эти действия на уровень самой БД без участия клиентского приложения не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 11:59 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
ASCRUSДополнение - в ASE и MSSQL в отличие от ASA просто нужно привыкнуть, что некую часть логики должно выполнять клиентское приложение - создавать времянки, вызывать для инициализации нужные ХП и т.д. Вывести все эти действия на уровень самой БД без участия клиентского приложения не получится. Да уж, не на том начинали :) Это как будто с хорошего джипа на БТР пересесть, вроде помощней, но в остальном никакому сравнению не поддается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 12:49 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Vovaka MasterZiv1) #table -временные таблицы и так живут на время сессии , за некоторыми исключениями, а именно, временные таблицы, созданные в процедурах и триггерах, автоматически удаляются по выходу из них. похоже это то, что нужно т.е. один раз я создаю таблицу #tname , а потом каждый коннект будет в ней видеть только "свои" данные ? нет. просто у каждого будет своя таблица #tname . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 19:34 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
MasterZiv 2) ##table - временных таблиц (как в MSSQL) в ASE нет. Выполнил на Sybase ASE 12.0.0.4 ... create table ##tmp(f1 int) insert into ##tmp select 1 select * from ##tmp drop table ##tmp ... и получил 1. Почему ты решил что в ASE их нет??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 14:48 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
если открыть Sybase Central, то после создания #TNAME можно увидеть в в базе данных tempdb что за таблица была создана.(и какое у нее реальное имя) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 18:16 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: plaintext 1. 2. 3. 4. 5. ## -в Sybase ASE совсе не то что в MS :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 18:22 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Diaflex MasterZiv 2) ##table - временных таблиц (как в MSSQL) в ASE нет. Выполнил на Sybase ASE 12.0.0.4 ... create table ##tmp(f1 int) insert into ##tmp select 1 select * from ##tmp drop table ##tmp ... и получил 1. Почему ты решил что в ASE их нет??? Да ты можешь свою временную таблицу хоть #####a назвать, но она от этого вести себя по-другому не станет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 19:50 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Пробуем раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 19:56 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Пробуем два (из первого соединения) Код: plaintext 1. 2. 3. 4. 5. 6. Пробуем три (из второго соединения) Код: plaintext 1. 2. 3. Что и требовалось доказать, это не работает как в MSSQLServer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 19:59 |
|
||
|
ASE 12.5 как создать временную таблицу ?
|
|||
|---|---|---|---|
|
#18+
Напоминаю, что в MSSQL MSDN Global temporary tables have two number signs (##) as the first characters of their names; they are visible to any user after they are created ; and they are deleted when all users referencing the table disconnect from SQL Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 20:11 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32837863&tid=2014001]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 267ms |

| 0 / 0 |

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