Есть ли способ создать собственную переменную @@ в SQL Server? - PullRequest
1 голос
/ 14 июля 2011

В SQL-сервере бывают случаи, когда у меня есть переменная, которая может измениться, которую используют многие хранимые процедуры, и я думаю, что было бы здорово, если бы я мог сохранить ее как '@@ variable' (например, @@ servername) .

Можно ли создать собственную переменную @@? И если да, то как ты это делаешь?

(с использованием SQL Server 2008)

Ответы [ 3 ]

6 голосов
/ 14 июля 2011

Я бы пошел с использованием реальной таблицы для хранения ваших глобальных значений, тогда она будет существовать между перезапусками / соединениями.Вот хороший пример этого: http://weblogs.sqlteam.com/mladenp/archive/2007/04/23/60185.aspx

1 голос
/ 14 июля 2011

Вы не можете объявить глобальную переменную, которую можно совместно использовать между хранимыми процедурами.

Однако вы можете использовать глобальные временные таблицы для обмена данными, просто объявите таблицу с использованием приведенного ниже синтаксиса и вставьте / прочитайте значения.

CREATE TABLE ##myTempTable
(
  DummyField1 INT,
  DummyField2 VARCHAR(20)
)

Для обмена данными внутри соединения вы можете использовать context_info:

declare @vb varbinary(128)
set @vb = context_info() -- read value
set context_info @vb -- set value
1 голос
/ 14 июля 2011

В этих ситуациях у меня обычно была бы таблица для хранения этих значений, и я сохранял бы там настройки.Вы можете использовать скалярную функцию, чтобы инкапсулировать ее с помощью хранимой процедуры для ее установки.Я не знаю, как на самом деле создать свои собственные @@ переменные, но я не изучал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...