У меня есть ситуация, когда мне нужно получить данные из одной из более чем 100 баз данных (все с одинаковой схемой) в зависимости от параметра, переданного в хранимую процедуру.
Я пытался это сделать, чтобы создать динамический SQL-оператор для выполнения с sp_executesql
:
(это всего лишь тестовый сценарий, кстати):
declare @sql nvarchar(1000)
set @sql = 'select top 10 * from [SERVER].@dbName.dbo.[LL]'
exec sp_executesql @sql, N'@dbName nvarchar(50)', @dbName = N'[TheDatabase1]'
Это дает ошибку Incorrect syntax near '@dbName'.
Есть ли другой вариант, который я мог бы рассмотреть?
PS - схема базы данных не находится под моим контролем.