Здравствуйте. Возвращаюсь к основам программирования после 10 лет забытия, поэтому прошу не судить строго.
Есть конкретная задача, которую надо решить в оперативном режиме - время на изучение теории нет.
Не хочется изобретать велосипед (тем более задача думаю многим известная) - подскажите, в каком направлении копать.
Есть ПО по архитектуре КЛИЕНТ-СЕРВЕР (C# + MS SQL).
Есть функционал, в котором пользователь просматривает состав какого-либо изделия (часто употребляют термин - "разузлование").
Каждый клиент временно загружает данные об изделии в таблицу состава изделия и уже с ней работает.
Каждый клиент видит только свои данные (свое изделие) и не оказывает влияние на других.
По окончанию сеанса - таблица очищается.
Ранее такой функционал в Oracle реализовывали при помощи временных таблиц - идеально подходили.
Вопрос: как его реализовать в MS SQL.
Возможные варианты, которые я рассматривал и которые мне не подошли. Или я до конца не понял:
1) Табличные переменные. Мне не подходят, так как создаются/очищаются в рамках одной хранимой процедуры. А мне нужно совершать над данными действия из приложения.
2) Временные таблицы. Вроде подходят (как раз хранят данные в рамках сеанса). Но нашел описание, что если создать в рамках хранимой процедуры, то и видны будут из этой процедуры - другие хранимые процедуры (кроме вложенных) не увидят данные. Мне опять же не подходит.
3) Использовать обычную таблицу и ручками управлять данными (очищать, загружать). Но встанет вопрос разграничения видимости данных, чтобы один пользователь "не мешал" другому. Это можно сделать, если добавить в таблицу какой-нибудь идентфикатор пользователя и ориентироваться на него - но как-то это трудозатратно и рискованно.
Подскажите, как лучше реализовать данный функционал ? Не уж то в MS SQL нет средства, чтобы работать с данными в рамках одного сеанса, но при помощи разных хранимых процедур. Например, одна - создала и заполнила таблицу, вторая - отфильтровала нужное, третья - изменила содержимое и т.д.
Спасибо.
Есть конкретная задача, которую надо решить в оперативном режиме - время на изучение теории нет.
Не хочется изобретать велосипед (тем более задача думаю многим известная) - подскажите, в каком направлении копать.
Есть ПО по архитектуре КЛИЕНТ-СЕРВЕР (C# + MS SQL).
Есть функционал, в котором пользователь просматривает состав какого-либо изделия (часто употребляют термин - "разузлование").
Каждый клиент временно загружает данные об изделии в таблицу состава изделия и уже с ней работает.
Каждый клиент видит только свои данные (свое изделие) и не оказывает влияние на других.
По окончанию сеанса - таблица очищается.
Ранее такой функционал в Oracle реализовывали при помощи временных таблиц - идеально подходили.
Вопрос: как его реализовать в MS SQL.
Возможные варианты, которые я рассматривал и которые мне не подошли. Или я до конца не понял:
1) Табличные переменные. Мне не подходят, так как создаются/очищаются в рамках одной хранимой процедуры. А мне нужно совершать над данными действия из приложения.
2) Временные таблицы. Вроде подходят (как раз хранят данные в рамках сеанса). Но нашел описание, что если создать в рамках хранимой процедуры, то и видны будут из этой процедуры - другие хранимые процедуры (кроме вложенных) не увидят данные. Мне опять же не подходит.
3) Использовать обычную таблицу и ручками управлять данными (очищать, загружать). Но встанет вопрос разграничения видимости данных, чтобы один пользователь "не мешал" другому. Это можно сделать, если добавить в таблицу какой-нибудь идентфикатор пользователя и ориентироваться на него - но как-то это трудозатратно и рискованно.
Подскажите, как лучше реализовать данный функционал ? Не уж то в MS SQL нет средства, чтобы работать с данными в рамках одного сеанса, но при помощи разных хранимых процедур. Например, одна - создала и заполнила таблицу, вторая - отфильтровала нужное, третья - изменила содержимое и т.д.
Спасибо.