Один незначительный недостаток OPENQUERY заключается в том, что нельзя использовать что-либо, кроме строковых литералов, как для сервера, так и для запроса.
С EXEC AT вы можете, по крайней мере, использовать переменные varchar для запроса (хотя это может быть затруднительно, правильно указывать содержимое), но не для имени сервера:
Declare @Sql AS varchar (max) = 'ВЫБРАТЬ СЕРВЕРНАЯ СОБСТВЕННОСТЬ (' 'версия продукта' ')'
EXEC (@sql) НА MyLinkedServer
Я предполагаю, что это всего лишь ограничение синтаксического анализатора, а не какое-то преднамеренное ограничение в дизайне.