У меня есть два представления в проекте базы данных, который ОТКРЫВАЕТ Oracle LinkedServer.Когда я публикую в производство, связанный сервер Oracle должен называться «OracleBI».Когда я публикуюсь для тестирования, связанный сервер Oracle должен иметь имя «OracleTestBI».Как мне это сделать?
Я пытался использовать переменные SQLCMD и подавлять предупреждения T_SQL SQL71501.Ошибки не будут подавлены.
Я попытался создать скелетное представление, а затем изменить представление с помощью сценария после развертывания, но изменение не было разрешено, «неверный синтаксис рядом с ALTER».в пакете .....
Я попытался создать представление с помощью оператора select для табличной функции.Создание скелетной табличной функции, а затем ее изменение в сценарии после развертывания, но оператор alter был запрещен, «неправильный синтаксис рядом с ALTER».в пакете .....
Я попытался создать дополнительный проект базы данных для связанного сервера с именами тестового и расширенного связанных серверов, добавил его в качестве ссылки, а затем использовал переменную SQLCMD для переключения между связанным серверомnames, "... View: [compass] .vwBIInvForecastBegVolume имеет неразрешенную ссылку на объект [$ (OracleServer)]"
Мой сценарий после развертывания вызывает другие сценарии, и когда я говорю, я добавил сценарий изменения всценарий после развертывания, я действительно добавил ссылку на сценарий в сценарий после развертывания.Мой сценарий развертывания после публикации выглядит следующим образом:
PRINT 'Create Environment Users'
------------------------------------------------------------
IF '$(TargetEnv)' = 'PROD'
BEGIN
:r .\PostDeployment\CreateEnvironmentUsers.Prod.sql
END
ELSE
IF '$(TargetEnv)' = 'TEST'
BEGIN
:r .\PostDeployment\CreateEnvironmentUsers.Test.sql
END
ELSE
BEGIN
:r .\PostDeployment\CreateEnvironmentUsers.Local.sql
END