Я недавно выполнил миграцию с SQL Server 2012 на SQL Server 2019.
У меня есть запрос на связанный сервер в сложном условии if. Он проходит проверку синтаксиса и работает в 2012 году. Я получаю дамп стека в RTM 2019 или CU3
IF NOT EXISTS (SELECT NULL
FROM [LinkedServer].master.sys.tables
WHERE name LIKE 'fakeTableName')
AND EXISTS (SELECT NULL FROM master.sys.tables)
BEGIN
SELECT 1
END
Я получаю эту ошибку:
Msg 596, Уровень 21, Состояние 1 , Строка 0
Невозможно продолжить выполнение, поскольку сеанс находится в состоянии уничтожения.
Сообщение 0, Уровень 20, Состояние 0, Строка 0
Произошла серьезная ошибка в текущей команде. Результаты, если таковые имеются, должны быть отброшены.
Обходной путь - просто превратить его в 2 оператора if.
Может ли кто-нибудь еще подтвердить поведение?