Stored-Procedures

需要創新的解決方案 - 遠端創建儲存過程

  • April 25, 2016

我有一個本地儲存過程,我想將其分發給許多其他 SQL Server,而無需手動登錄每個 SQL Server。

如果我想使用 .sql 和 SQLCMD 路由,所有伺服器都可以訪問同一個網路共享。

或者,所有伺服器都使用相同的登錄憑據連結到“中央”伺服器。

本質上,我想避免使用冗長的 OPEN QUERY,因為在處理冗長的儲存過程時,語法會成為管理的噩夢。

歡迎/讚賞的想法

您可以簡單地在 SSMS 中的已註冊伺服器窗格中創建一個組,並將所有伺服器添加到該組。然後,您可以對整個組執行查詢。只需在此處執行 Create 過程(或您需要的任何程序),它將在組中的所有伺服器上執行(可能已成功連接)。

請注意,針對組執行的選擇查詢會返回合併結果集中的結果,該結果集中基本上顯示來自所有伺服器的所有結果合併在一起,並為源添加了 ServerName 列(不允許伺服器進行任何過濾)。這可以在 SSMS 中更詳細地配置

工具 -> 選項 -> 查詢結果 -> SqlServer -> 多伺服器結果

如果不同伺服器上的表或視圖有不同的定義,結果的合併將失敗(如果您使用 select *)。在這種情況下,使用具有允許 SSMS 合併結果的已定義列名的查詢。

引用自:https://dba.stackexchange.com/questions/136475