Есть ли способ программно установить имена таблиц, используемые в предложении FROM?
Причина в том, что у нас есть разные имена таблиц в нашей среде prod vs. dev, поэтому нам нужно соответствующим образом установить имена таблицдля использования в наших отчетах, основанных на различных средах.
Например:
В prod имя базы данных 123prd, в dev это будет 123dev
В prod имя базы данных 456prd, в dev это 456dev
Отчет выполняется для базы данных 123prd, и нам нужно INNER JOIN присоединиться к другой таблице в базе данных 456prd.
Таким образом, для среды Prod это будет примерно так:
USE 123prd
SELECT *
FROM aTable a
JOIN 456prd.dbo.bTable b
ON a.id = b.id
Однако, поскольку отчет должен работать правильно в соответствии с другой средой Prod vs. Dev, мне нужно будет программно изменитьимя базы данных в предложении FROM.
Так вот что у меня есть:
DECLARE @456DBName VARCHAR(16)
SET @456DBName = REPLACE(DB_NAME(), '123', '456')
USE 123prd
SELECT *
FROM aTable a
JOIN CONCAT(@456DbName, '.dbo.bTable') b
ON a.id = b.id
Я получил неверный синтаксис ошибки при использовании CONCAT или + Есть ли правильный способ, как сделать связанныйсервер программно?Кстати, извините за плохой английский, надеюсь, мой вопрос имеет смысл.