У меня есть хранимая процедура, которая позволяет параметру IN указывать, какую базу данных использовать. Затем я использую предварительно определенную таблицу в этой базе данных для запроса. Проблема, с которой я сталкиваюсь, заключается в объединении имени таблицы с этим именем базы данных в моих запросах. Если бы у T-SQL была функция оценки, я мог бы сделать что-то вроде
eval(@dbname + 'MyTable')
В настоящее время я застрял в создании строки, а затем использую exec()
для запуска этой строки в качестве запроса. Это грязно, и я бы не стал создавать строку. Есть ли способ, которым я могу оценить переменную или строку, чтобы я мог сделать что-то вроде следующего?
SELECT *
FROM eval(@dbname + 'MyTable')
Я бы хотел, чтобы он оценил, чтобы он выглядел так:
SELECT *
FROM myserver.mydatabase.dbo.MyTable