Ну, вы могли бы обернуть динамический SQL в расширенную хранимую процедуру. Это бы сработало, но я бы (настоятельно) не советовал этого делать.
SQL Server требует, чтобы пользовательские функции были детерминированными (за исключением вышеупомянутых расширенных хранимых процедур), т. Е. Результаты функции должны быть равномерно предсказуемыми из входных параметров. Поскольку хранимые процедуры могут получать доступ к данным из любого места, использовать случайные числа и т. Д., SQL Server не позволит вам использовать их внутри функции.
Существуют и другие подходы, которые вы можете использовать, такие как предварительное заполнение табличной переменной вашими данными, изменение схемы и т. Д., Которые будут зависеть от ваших требований к производительности и от того, как вы настроили схему.