powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL Server 2019 не помнит значений переменных
16 сообщений из 16, страница 1 из 1
SQL Server 2019 не помнит значений переменных
    #40088878
Коллеги, мне стыдно задавать этот вопрос, не работал с SQL Server уже 5 лет, немного позабывал все...

Короче, пытаюсь в одной сессии (окно SQL Server Management studio) запустить по отдельности
Код: sql
1.
declare @dmin datetime, @dmax datetime



а потом отдельно выделяем этот текст
Код: sql
1.
select @dmin = min([event_time]), @dmax = max(event_time) from [dbo].[table]


и запускаем.

на втором стейтменте не видит переменных - ругается Must declare the scalar variable "@dmin".

Мне почему-то кажется, что поведение в предыдущих версиях было не такое: переменные помнило в пределах сессии.
Или это у меня глюки?

Может настройка где есть?
Не судите строго.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40088881
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак,

так вы не выделяйте отдельно текст, а запускайте всё что написано в окне одним куском.


Само собой выделенное считается обособленным куском кода на момент запуска. Это весьма удобно, кстати. SSMS один из лучших инструментов для БД, если не лучший.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40088884
Кесарь,

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

Я понимаю что есть временные таблицы и все такое. Но мне почему-то казалось, что более ранних версиях это было по другому.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40088887
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак
Но мне почему-то казалось, что более ранних версиях это было по другому.

Нет, так было всегда.

Каждое выполнение - это отдельный batch, переменные "живут" только в рамках batch-а
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40088916
msLex,

Спасибо.

Привычка работать со спарком с jupyter notebook, где ты можешь запомнить переменные между выполнениями запросов, дает о себе знать конкретно. Настолько конкретно, что даже не верится, что в SQL Server не было настройки "растянуть один батч в пределах одного окна".
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40088917
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак
msLex,

Спасибо.

Привычка работать со спарком с jupyter notebook, где ты можешь запомнить переменные между выполнениями запросов, дает о себе знать конкретно. Настолько конкретно, что даже не верится, что в SQL Server не было настройки "растянуть один батч в пределах одного окна".


Никогда не сдавайтесь! Тем более, если работали "со спарком с jupyter notebook, где ты можешь..", а тут форменная фигня, будем откровенны
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40088918
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак,

слава богу такого в sql server нет. Ибо это путь к бардаку.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089024
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак
Мне почему-то кажется, что поведение в предыдущих версиях было не такое: переменные помнило в пределах сессии.
Или это у меня глюки?
Да.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089087
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"запомнить переменную" может только клиентское приложение. Возможно, раньше Вы пользовались другим менеджером и вносили в конфигурацию значения переменных заранее.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089302
Col
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак
Добавьте в начале "романа на t-sql" BEGIN TRAN и получите то что ищете, в конце "романа" соответственно надо дать COMMIT TRAN
Что-то типа вот такого должно получиться:
BEGIN TRAN T1;
ваш код первая глава
ваш код глава вторая
Ваш код эпилог - если надо
COMMIT TRAN T1;

П.С.
Если по ходу выполнения Вас что-то не устроит подайте команду ROLLBACK и она откатит все назад - как было.
П.П.С
Коллеги ДБА могут начать ругаться матом, если Вы долго транзакции открытыми держать будете...
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089330
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Бобак
Кесарь,

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

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


в SSMS не было...
... по крайней мере, последние 15 лет ...
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089371
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SIMPLicity_
в SSMS не было...
... по крайней мере, последние 15 лет ...
В QA тоже не было.
Итого последние 25 лет.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089380
Col
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg , SIMPLicity_
В общем вы не правы.
SET IMPLICIT_TRANSACTIONS в SSMS настраивается, ниже скриншот.
Чтиво о об этой настройке вот тут:
https://docs.microsoft.com/en-us/sql/t-sql/statements/set-implicit-transactions-transact-sql?view=sql-server-ver15
Однако настройка не популярна, ибо правильнее контролировать транзакции методом, который я описывал выше.

...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089463
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой метод плох тем, что, что экспериментатор может "забыть" транзакцию, скажем, на выходные, в результате чего происходит авария.
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089591
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Col
alexeyvg , SIMPLicity_
В общем вы не правы.
SET IMPLICIT_TRANSACTIONS в SSMS настраивается, ниже скриншот.
В чём я не прав?
Опция SET IMPLICIT_TRANSACTIONS в SSMS не имеет отношения к "запоминанию значений переменных".
...
Рейтинг: 0 / 0
SQL Server 2019 не помнит значений переменных
    #40089740
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Col
alexeyvg , SIMPLicity_
В общем вы не правы.
SET IMPLICIT_TRANSACTIONS в SSMS настраивается, ниже скриншот.
Чтиво о об этой настройке вот тут:
https://docs.microsoft.com/en-us/sql/t-sql/statements/set-implicit-transactions-transact-sql?view=sql-server-ver15
Однако настройка не популярна, ибо правильнее контролировать транзакции методом, который я описывал выше.

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


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