[英]How to do bulk update of views?
我的數據庫有大約30個視圖,其中大多數視圖都引用了該服務器上的另一個數據庫(稱為DB1
)。
現在,無需深入說明原因,我需要將所有這些視圖都更新為DB2
,也應在本地服務器上。
我討厭必須在每個視圖上手動執行此操作。 我是否可以運行一些SQL查詢,以在所有視圖中將所有出現的字符串“ DB1”替換為“ DB2”?
您可以像這樣查詢sys.sql_modules,我將使用它通過bcp生成文件(SSMS將截斷結果),該文件可以作為另一個SQL腳本運行。 這也保留了權限。
我以前使用過這種技術,並且可以正常工作。
SELECT
REPLACE (REPLACE (sm.definition, 'CREATE VIEW', 'ALTER VIEW'), 'DB1.', 'DB2.') + '
GO'
FROM
sys.sql_modules sm
JOIN
sys.objects o ON sm.object_id = o.object_id
WHERE
sm.definition LIKE '%DB1.%' AND o.type = 'V'
導航到views文件夾,現在按F7(對象資源管理器詳細信息),然后從右窗格中選擇所需的所有視圖,右鍵單擊->腳本視圖為-> DROP and CREATE TO
>新查詢窗口。 在其中將DB1更改為DB2和voila
看圖片
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.