powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться с переменными MSSQL
18 сообщений из 18, страница 1 из 1
Помогите разобраться с переменными MSSQL
    #39757234
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

При определённом выполнении хранимая процедура должна передать параметры в переменную сеанса, которая автоматически "обнулится" по завершению череды выполнения хранимых процедур.

Т.е. вызвали интерфейсную хранимую процедуру, та вызывает вторую, та третью... "где-то в недрах череды выполнения, какая-то" хранимая процедура, сохраняет параметры в глобальную переменную для данного сеанса... и эти параметры могут быть прочитаны в первой хранимой процедуре с которой всё начиналось...

Что-то подобное можно сделать? (output переменной хранимки не предлагать!)
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757249
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
context_info или банальная таблица
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757251
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS,

CONTEXT_INFO - не ?

Или, если версия позволяет, совсем "по-богатому" - SESSION_CONTEXT
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757272
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtИгорь_UUS,

CONTEXT_INFO - не ?

Или, если версия позволяет, совсем "по-богатому" - SESSION_CONTEXT

то что надо, спасибо... SESSION_CONTEXT не подойдёт т.к. mssql 2008

существенный минус, что можно сохранить только 128 символов((
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757275
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевичcontext_info или банальная таблица

"банальная таблица" - идея ясна... но таблица начнёт "копить данные"... тут сложность, что очень много сессий, у каждого могут быть свои сообщения
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757284
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSГавриленко Сергей Алексеевичcontext_info или банальная таблица

"банальная таблица" - идея ясна... но таблица начнёт "копить данные"... тут сложность, что очень много сессий, у каждого могут быть свои сообщения"банальная таблица" - это заменитель context_info, в таблице вы можете реализовать точно такую же логику работы, но без ограничения размера.
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757291
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtИгорь_UUS,

CONTEXT_INFO - не ?


а как обнулить данную переменную...

Код: sql
1.
2.
DECLARE @context_info varbinary(128) 
SET CONTEXT_INFO @context_info



пишет ошибку: "инструкция SET CONTEXT_INFO требует параметр varbinary (128) NOT NULL."
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757292
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgИгорь_UUSпропущено...


"банальная таблица" - идея ясна... но таблица начнёт "копить данные"... тут сложность, что очень много сессий, у каждого могут быть свои сообщения"банальная таблица" - это заменитель context_info, в таблице вы можете реализовать точно такую же логику работы, но без ограничения размера.

используя @@SPID? чтоб сообщения разных сессий не путать...
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757309
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUScourtИгорь_UUS,

CONTEXT_INFO - не ?


а как обнулить данную переменную...

Код: sql
1.
2.
DECLARE @context_info varbinary(128) 
SET CONTEXT_INFO @context_info




пишет ошибку: "инструкция SET CONTEXT_INFO требует параметр varbinary (128) NOT NULL."
Код: sql
1.
2.
DECLARE @context_info varbinary(128)=CAST(''AS VARBINARY(128));
SET CONTEXT_INFO @context_info;

?
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757311
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSно таблица начнёт "копить данные"Если делать правильно (на основе session_id, login_name, login_time) то ничего копить не будет.
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757321
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSа как обнулить данную переменную...

Код: sql
1.
set context_info 0x
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757335
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShakillИгорь_UUSа как обнулить данную переменную...

Код: sql
1.
set context_info 0x



Спасибо.. работает!
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757384
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то меня достаточно аргументированно отговаривали использовать CONTEXT_INFO, и я внял убеждениям, и тоже с тех пор стараюсь его не использовать. Самая первая ХП создает временную таблицу под переменные, вложенные ХП туда пишут, что нужно, при выходе из первой ХП временная таблица самоудаляется - вроде как ничего сложного.
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757676
Mike_za
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

и ести временная таблица усаствует в джоинах, то получаем гарантированные рекомпиляции на каждом обращении к ней
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757682
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mike_zaСон Веры Павловны,

и ести временная таблица усаствует в джоинах, то получаем гарантированные рекомпиляции на каждом обращении к ней
Ну, если человеку нужен был аналог обычной переменной, только глобальной, и его устроил CONTEXT_INFO, то я как-то сомневаюсь, что вокруг этого всего была выстроена какая-то реляционная логика. Скорее всего, обычная императивщина - прочитать значение, записать значение.
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757691
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUSalexeyvgпропущено...
"банальная таблица" - это заменитель context_info, в таблице вы можете реализовать точно такую же логику работы, но без ограничения размера.

используя @@SPID? чтоб сообщения разных сессий не путать...Да.
Но вообще нужно анализировать вашу архитектуру, возможно, вы решаете через переменные такую задачу, которую обычно решают по другому.
Например, общие данные часто хранят в локальных временных таблицах.
Или разбивают одно бизнес-действие на несколько, с согранением соответствующих промежуточных результатов в постоянных таблицах, что даже часто является более натуральным для бизнеса, а объединено было только фантазиями прораммистов.
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39757803
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS,

Используйте Output параметр (несмотря на то, что не предлагать!), взаимодействие в хорошей архитектуре должно производиться только через интерфейсы, а не через глобальные переменные. Тем самым вы уменьшаете степень связности и гарантируете, что очередной программист не "забудет" об этой переменной.
...
Рейтинг: 0 / 0
Помогите разобраться с переменными MSSQL
    #39758143
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовИгорь_UUS,

Используйте Output параметр (несмотря на то, что не предлагать!), взаимодействие в хорошей архитектуре должно производиться только через интерфейсы, а не через глобальные переменные. Тем самым вы уменьшаете степень связности и гарантируете, что очередной программист не "забудет" об этой переменной.+1. Глобальные переменные зло. А в SQL-е зло вдвойне.

Простите, Игорь_UUS, но вашу архитектуру надо выкинуть на помойку. В этом потом никто кроме вас не разберется.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться с переменными MSSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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