Dbeaver с сервером sql, как установить несколько переменных за один запуск?

@set test10 = 5
select ${test10}

если я запускаю это в dbeaver, это дает мне 5. Однако, если я перехожу на 7, это не работает, если я выбираю обе строки вместе. Это какая-то шутка?

Я также читал об изменении настроек Dbeaver: dbeaver настройки параметров

Который на самом деле установлен, как показано на скриншоте выше.

как упоминалось larnu, я изменил запрос на следующий:

DECLARE @test1 int, @test2 int;
SET @test1 = 11;
SET @test2 = 22;
SELECT @test1, @test2;

который теперь запрашивает окно каждый раз, когда я запускаю запрос: введите здесь описание изображения

Что мне здесь не хватает?

Такое же поведение, если я хочу определить 2 переменные в верхней части запроса:

@set test10 = 7
@set test11 = 8
select ${test10}, ${test11}

Это работает, только если я запускаю строку 1, а затем строку 2, после чего я наконец могу увидеть изменения, сделанные при запуске строки 3.

До сих пор я находил только отдельные части объяснений в документации и переполнении стека.


person J. Doe    schedule 09.10.2020    source источник
comment
Вы уверены, что используете SQL Server? Это недопустимо для T-SQL, а DBeaver — это просто IDE. В T-SQL переменные создаются с помощью DECLARE, а имена начинаются с @. Например DECLARE @V1 int, @V2 varchar(2); SET @V1 = 1; SET @V2 = 'AB';   -  person Larnu    schedule 09.10.2020
comment
Как бы я тогда выбрал эти переменные? я попробовал это с помощью Select '@V2', '@V1', что не дало мне никакого результата, кроме синтаксической ошибки. Да, это SQL Server. Спасибо. Забелить ', но иначе стек подумает, что я хочу упомянуть человека в своем посте   -  person J. Doe    schedule 09.10.2020
comment
SELECT @V1; даст вам значение @V1. db‹›fiddle   -  person Larnu    schedule 09.10.2020
comment
Итак, я играл с вашим вводом и знаю, что всегда получаю всплывающее окно, в котором мне нужно нажать «игнорировать». Есть шанс избавиться от этого? или я все еще что-то упускаю? я обновил свой вопрос выше и добавил скриншот   -  person J. Doe    schedule 09.10.2020
comment
Я недостаточно знаком с DBeaver, чтобы советовать по этому поводу; Я придерживаюсь SSMS и ADS для SQL Server.   -  person Larnu    schedule 09.10.2020


Ответы (1)


Используйте команду «Выполнить сценарий SQL» (Alt+X) для обработки нескольких операторов.

@set test1 = 'Foo' 
@set test2 = 'Bar'
select :test1, :test2

Объяснение здесь: https://github.com/dbeaver/dbeaver/issues/2244#issuecomment-333441954

person Baffioso    schedule 21.04.2021