Переменные сеанса / соединения SQL - PullRequest
4 голосов
/ 04 апреля 2011

Я пытаюсь найти некоторый эквивалент переменных сеанса в SQL. Я хочу иметь возможность хранить и извлекать только номер, но каждое соединение с базой данных имеет свой номер. Он должен сохраняться от одной партии к другой на том же соединении.

У меня было решение, в котором использовался глобальный курсор, подобный этому.

IF (SELECT CURSOR_STATUS('global','ChangeSet')) >= 0 
BEGIN --Close and deallocate the cursor
    Close ChangeSet
    DEALLOCATE ChangeSet
END

--Create a new cursor
DECLARE ChangeSet CURSOR GLOBAL STATIC FOR
SELECT ChangeSet = @ChangeSet

--Open the cursor
OPEN ChangeSet

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

Кстати, я использую MS SQL Server.

Ответы [ 2 ]

6 голосов
/ 04 апреля 2011

Свойство CONTEXT_INFO может быть тем, что вы ищете - оно позволяет вам устанавливать и считывать двоичное значение для конкретного соединения.

Вы можете закодировать ваше числовое значение в двоичный файл и сохранить его в этом свойстве.

0 голосов
/ 04 апреля 2011

Временная таблица сохраняется в пакете (включая go).Это все еще зависит от соединения:

create table #temp (val float)
insert #temp values (3.14)
go
select * from #temp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...