Stored-Procedures
需要創新的解決方案 - 遠端創建儲存過程
我有一個本地儲存過程,我想將其分發給許多其他 SQL Server,而無需手動登錄每個 SQL Server。
如果我想使用 .sql 和 SQLCMD 路由,所有伺服器都可以訪問同一個網路共享。
或者,所有伺服器都使用相同的登錄憑據連結到“中央”伺服器。
本質上,我想避免使用冗長的 OPEN QUERY,因為在處理冗長的儲存過程時,語法會成為管理的噩夢。
歡迎/讚賞的想法
您可以簡單地在 SSMS 中的已註冊伺服器窗格中創建一個組,並將所有伺服器添加到該組。然後,您可以對整個組執行查詢。只需在此處執行 Create 過程(或您需要的任何程序),它將在組中的所有伺服器上執行(可能已成功連接)。
請注意,針對組執行的選擇查詢會返回合併結果集中的結果,該結果集中基本上顯示來自所有伺服器的所有結果合併在一起,並為源添加了 ServerName 列(不允許伺服器進行任何過濾)。這可以在 SSMS 中更詳細地配置
工具 -> 選項 -> 查詢結果 -> SqlServer -> 多伺服器結果
如果不同伺服器上的表或視圖有不同的定義,結果的合併將失敗(如果您使用 select *)。在這種情況下,使用具有允許 SSMS 合併結果的已定義列名的查詢。