OriginalGriff
Вы не можете передать имя таблицы или столбца в качестве параметра: оно анализируется на более ранней стадии выполнения команды SQL, чем подстановка параметров.
Вы можете сделать это - преобразовать полученный SELECT в строку NVARCHAR и использовать EXEC для ее запуска - но это очень плохая идея, так как она широко открыта для SQL-инъекции, поэтому если вы не будете очень-очень жестко контролировать входные значения, которые передаются функции (например, как минимум проверяя, что каждое значение является одним именем таблицы / столбца и не содержит никакой другой информации как часть этой SQL-функции), то в какой-то момент Вы потеряете свою БД либо из-за кражи, либо из-за злонамеренных манипуляций командами.
Я бы настоятельно посоветовал вам вообще этого не делать.