快速更新 資料庫物件 擁有者

2022-03-20 23:13:28 字數 568 閱讀 9027

今天恢復資料庫的時候,發現有很多procedure的所有者不是dbo,而是一些其他使用者,這樣造成使用者不能訪問它。

首先想到的是刪除這些procedure然後再重建,發現數量太多不太現實。

突然又想到可以把所有儲存過程列出來,然後用procedure sp_changeobjectowner 來更改它。

最後在我們經常使用者查資料庫表的 sysobjects 表裡面,發現dbo的id都是1,那麼可不可以用sql來update它呢。

抱著試一試的心態,執行了以下sql語名,

update

sysobjects

setuid=1

where

type='

p'結果出現以下錯誤:

伺服器: 訊息 259,級別 16,狀態 2,行 1

未啟用對系統目錄的特殊更新。系統管理員必須重新配置 sql server 以允許這種操作。

於是按照提示,開啟sql server屬性 ->  伺服器設定 -> 充許對系統目錄進行直接修改

設定如下圖:

再執行上面的語句,就把所有的procedure的所有者改成了 dbo 了。

資料庫快速更新全表資料

備註 以下更新的演算法適合所有資料庫,示例採用postgresql,其它資料庫只用修改語法即可.題外話 軟體思想很重要,不要侷限於某種語言 工具 資料庫,思想才是最重要的.有時候乙個靈光一閃的想法說不定就是乙個好的軟體.開始談正事,在update全表資料時,常規寫法下大家經常抱怨更新太慢,語句如下 ...

更新資料庫物件依賴關係

在sql server 中我們會通過郵件選單來檢視乙個物件的依賴關係,但有些意外情況會造成檢視結果並不是非常的準確!可以嘗試以下例子 第一步 顛倒順序,建立乙個缺失依賴關係的儲存過程 code create proc dbo.testrefresh1 asexec dbo.testrefresh2 ...

內容提供者,更新資料庫

day5,不全 1 建立內容提供者並在清單檔案中設定,對資料庫的插入,刪除進行觀察 provider public class extends contentprovider override public uri insert uri uri,contentvalues values else r...