Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

Аналог временных таблиц Oracle в MS SQL (видимость только "своих" данных в рамках сеанса)

$
0
0
Здравствуйте. Возвращаюсь к основам программирования после 10 лет забытия, поэтому прошу не судить строго.
Есть конкретная задача, которую надо решить в оперативном режиме - время на изучение теории нет.
Не хочется изобретать велосипед (тем более задача думаю многим известная) - подскажите, в каком направлении копать.

Есть ПО по архитектуре КЛИЕНТ-СЕРВЕР (C# + MS SQL).
Есть функционал, в котором пользователь просматривает состав какого-либо изделия (часто употребляют термин - "разузлование").
Каждый клиент временно загружает данные об изделии в таблицу состава изделия и уже с ней работает.
Каждый клиент видит только свои данные (свое изделие) и не оказывает влияние на других.
По окончанию сеанса - таблица очищается.

Ранее такой функционал в Oracle реализовывали при помощи временных таблиц - идеально подходили.

Вопрос: как его реализовать в MS SQL.

Возможные варианты, которые я рассматривал и которые мне не подошли. Или я до конца не понял:
1) Табличные переменные. Мне не подходят, так как создаются/очищаются в рамках одной хранимой процедуры. А мне нужно совершать над данными действия из приложения.

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

3) Использовать обычную таблицу и ручками управлять данными (очищать, загружать). Но встанет вопрос разграничения видимости данных, чтобы один пользователь "не мешал" другому. Это можно сделать, если добавить в таблицу какой-нибудь идентфикатор пользователя и ориентироваться на него - но как-то это трудозатратно и рискованно.

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

Спасибо.

Viewing all articles
Browse latest Browse all 7251

Trending Articles