Ошибки · Решение
SQL Server ошибка 4101: что означает и как исправить
Правило области видимости запрещает aggregate справа от APPLY напрямую агрегировать колонку из левого input.
Короткий ответ
SQL Server 4101: aggregate на правой стороне APPLY ссылается на столбец левой стороны. Перенесите коррелированное выражение в допустимый subquery/scope.
Что означает ошибка
Правило области видимости запрещает aggregate справа от APPLY напрямую агрегировать колонку из левого input.
Возможные причины
- CROSS/OUTER APPLY содержит SUM/MAX/COUNT по внешней колонке.
- ORM сформировал коррелированный aggregate в неверном scope.
- После рефакторинга колонка стала внешней для агрегатного выражения.
Что проверить
- Изолируйте правую часть APPLY и отметьте все ссылки на left alias.
- Найдите aggregate, в аргумент которого попала такая ссылка.
- Проверьте альтернативный subquery/CTE с агрегированием внутри собственного scope.
Безопасные шаги
- Перестройте запрос так, чтобы aggregate работал по колонкам своего input.
- Передайте внешнее значение как условие/корреляцию, а не как агрегируемый аргумент.
- Добавьте regression test для сгенерированного SQL, если запрос строит ORM.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если запрос очень сложный, передайте DBA минимальный APPLY-фрагмент и ожидаемую семантику результата.
Похожие ошибки
- /errors/sql-server-error-4001/
- /errors/sql-server-error-4002/
- /errors/sql-server-error-4004/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.