簡體   English   中英

在SQL Server數據庫項目中,如何動態引用在使用OpenQuery的視圖中使用的Oracle鏈接服務器?

[英]In a SQL Server database project, how do I dynamically reference an Oracle linked server used in a view which uses OpenQuery?

我在OPENQUERY Oracle LinkedServer的數據庫項目中有兩個視圖。 當我發布產品時,Oracle鏈接服務器需要命名為“ OracleBI”。 在我發布測試時,需要將Oracle鏈接服務器命名為“ OracleTestBI”。 我該如何完成?

我嘗試使用SQLCMD變量並禁止T_SQL警告SQL71501。 錯誤不會被抑制。

我嘗試過創建骨架視圖,然后使用后期部署腳本更改視圖,但是不允許使用alter view,“ ALTER附近的語法不正確”。 在批處理中.....

我嘗試在表函數上使用select語句創建視圖。 創建骨架表函數,然后在部署后腳本上更改該函數,但不允許alter語句,“ ALTER附近的語法不正確”。 在批處理中.....

我嘗試為鏈接服務器創建一個帶有測試和生產鏈接服務器名稱的附加數據庫項目,將其添加為引用,然后使用SQLCMD變量在鏈接服務器名稱之間進行切換,“ ...查看:[compass] .vwBIInvForecastBegVolume具有對對象[$(OracleServer)]的未解析引用”

我的Post Deployment腳本調用了其他腳本,當我說我在后部署腳本中添加了一個更改腳本時,我真正要做的就是在后部署腳本中添加對該腳本的引用。 我的后期部署腳本如下所示:

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

是。 數據庫項目解決方案不支持Alter語句。 您必須使用Create語句簽入腳本。 在部署期間,DACPAC將在運行時創建Alter語句。 添加腳本以檢查視圖是否存在,然后拖放並重新創建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM