У меня есть определенная пользователем табличная функция в SQL Server, которая объединяет данные из нескольких таблиц, включая пару таблиц другой базы данных. Это делается путем жесткого кодирования имени базы данных в запросах, но мы хотим сделать имя базы данных настраиваемым (поскольку наши базы данных обычно совместно используют сервер с базами данных других приложений).
Я попытался создать динамическую строку запроса внутри функции, используя имя базы данных, которое хранится в таблице конфигурации, но:
- Когда я пытался
exec(@sqlStatement)
SQL Server сказал, что выполнение строки не разрешено внутри функции.
- Затем я попытался
exec sp_executesql @sqlStatement
, и функция была создана, но при ее выполнении SQL Server сообщает, что внутри функции вы можете запускать только расширенные функции и процедуры.
Таким образом, вопрос заключается в следующем: возможно ли создать функцию или хранимую процедуру для доступа к таблице в другой базе данных без необходимости повторного создания этой функции, когда имя базы данных отличается?
ТИА.