Подтвердить что ты не робот

Как проверить, объявлена ​​ли переменная (T-SQL)?

Когда я пишу

DECLARE @x INT

Есть ли способ проверить, была ли уже объявлена ​​переменная @x?

4b9b3361

Ответ 1

Нет.
Объявление переменных в tsql не соответствует пути кода и использует область видимости, как, например, другие языки.

Этот код показывает, что @xx существует, но не назначен, хотя объявление никогда не выполнялось.

if 1 = 0 
begin
  declare @xx int = 10
end
else
begin
  declare @yy int = 20
end

print coalesce(@xx, -100)
print coalesce(@yy, -200)

Результат

-100
20

Ответ 2

ЕСЛИ вы пытаетесь получить доступ к переменной, которая еще не определена, T-SQL Script даст вам сообщение об ошибке, указав, что переменная не определена.

Msg 137, уровень 15, состояние 2, строка 5 Должен объявить скалярную переменную "@x".