Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / начинающий - описание задачи / 6 сообщений из 6, страница 1 из 1
27.08.2002, 10:19:47
    #32046040
Sequel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
начинающий - описание задачи
Ситуация более подробно:
Несколько пользователей могут войти в программу с одинаковым логином. Значит, возможна ситуация когда оба запустят одну и туже ХП почти одновременно. Чтобы каждый из них работал со своим набором данных в хранимую процедуру передается помимо кода пользователя, текущего времени еще и код рабочей станции. Т.е. генерируется имя будущей временной таблицы (что то типа #tmp412708171003).
На вход в ХП подается ряд параметров последующей обработки данных и имя временной таблицы.
ХП должна создать эту таблицу, обработать по заданному условию несколько рабочих таблиц и внести в нее (во временную таблицу) какое-то количество записей. На выход ХП выдает содержимое этой временной таблицы.
Сама временная таблица после этого не должна удаляться и должна быть доступной из других ХП.

2 Jimmi -> почему не будет видна таблица созданная по методу, приведененому в вашем ответе п.1.???

Что подскажет всезнающий ALL начинающему.
Как это сделать правильно и эффективно???
...
Рейтинг: 0 / 0
27.08.2002, 10:27:28
    #32046043
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
начинающий - описание задачи
Локальные временные таблицы с одинаковыми именами, но созданные из разных коннектов, есть совершенно разные таблицы. Поэтому они и называются локальными. IMHO нет большого смысла городить дополнительный огород для проверки уникальности имен таких таблиц по отношению к другим коннектам.
...
Рейтинг: 0 / 0
27.08.2002, 10:58:23
    #32046063
Nickolay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
начинающий - описание задачи
временные таблицы действительно доступны только из текущего коннекта и при его закрытии автоматически удаляются... так что ее доступность для других ХП будет весьма ограничена (текущим коннектом). Ежели это не годится, то прийдется создавать обычную таблицу и после использования самому же ее удалять - тогда-то вам и понадобятся эти финты с уникальностью имен.
...
Рейтинг: 0 / 0
27.08.2002, 11:15:23
    #32046076
iMorsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
начинающий - описание задачи
Поскольку требуется фактически разделить данные от разных пользователей
То предложение по решению проблемы следующее

1. НЕ использовать временную таблицу (название с #)
2. Использовать обыкновенную таблицу
вней завести столбец в который при занесении данных
писать идентификатор пользователя который эти данные внес
им может быть
- login
- SPID (идентификатор процесса)
- прочая фигня (login + время, номер сетевой карты и т.п.)
3. при обработке данных использовать этот самый идентификатор
4. Придумать в каком месте Вашего алгоритма будут вычищаться данные из этой таблицы
Например, используем в качестве идентификатора SPID. перед запуском процедуры удаляем из таблицы все записи у которых сейчас нет "хозяина" (на сервере нет такого SPID) и еще удаляем записи у которых "хозяин" - запустивший процедуру SPID. Ну а протом заносим туда новый набор и с ним работаем....

По моему это проще и быстрее чем каждый раз создавать новые таблицы.
...
Рейтинг: 0 / 0
27.08.2002, 11:23:54
    #32046084
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
начинающий - описание задачи
Уважаемый Sequel , Ваши старания по поводу уникальности имени временной таблицы совершенно излишни. В MSSQL сущетвует понятие процесс, так вот если я и вы с разных станций под одним логином возьмемся запускать одну ХП, ничего взрывоопасного не произойдет. Мы оба создадим временные таблицы, только Вы с одним довеском к названию, а я с другим, SQL это сделает сам. По поводу пользования результатами способ один: другие ХП должны быть вызваны здесь же в текущей ХП.
...
Рейтинг: 0 / 0
27.08.2002, 15:04:45
    #32046209
Sequel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
начинающий - описание задачи
спасибо за идеи и обсуждение !!!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / начинающий - описание задачи / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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