Ms 資料庫,表,儲存過程等等相關所有者操作

2021-04-15 20:46:22 字數 1194 閱讀 9200

--修改所有使用者表/儲存過程/檢視/觸發器/自定義函式的所有者為dbo,則用游標(不要理會錯誤提示)  

declare   tb   cursor   local   for  

select   'sp_changeobjectowner   ''['+replace(user_name(uid),']',']]')+'].['  

+replace(name,']',']]')+']'',''dbo'''  

from   sysobjects    

where   xtype   in('u','v','p','tr','fn','if','tf')   and   status>=0  

open   tb  

declare   @s   nvarchar(4000)  

fetch   tb   into   @s  

while   @@fetch_status=0  

begin  

exec(@s)  

fetch   tb   into   @s  

end  

close   tb  

deallocate   tb  

go   

批量修改:

exec sp_msforeachtable 'exec sp_changeobjectowner ''?'',''dbo'' '

單個修改:

exec sp_changeobjectowner '要改的表名','dbo'

只有所有者才能更改表的所有者

示例  

下面的示例使使用者   albert   成為當前資料庫的所有者,並將舊資料庫所有者的現有別名對映到   albert。  

exec   sp_changedbowner   'albert'   

執行了exec   sp_changedbowner   'albert'   也沒有反映  

用了exec   sp_changeobjectowner   'authors',   'corporate/georgew'   

這是孤立使用者  

use   aaa  

go  

exec   sp_change_users_login   'auto_fix',   'aaa',   null,   'password'  

go   

資料庫儲存過程相關知識

一 set ansi nulls 指定在對空值使用等於 和不等於 比較運算子時,這些運算子的 sql 92 遵從行為。注釋sql 92 標準要求對空值的等於 或不等於 比較取值為 false。當 set ansi nulls 為 on 時,即使column name 中存在空值,使用 where c...

資料庫 儲存過程

儲存過程,stored procedure,是在大型資料庫系統中,一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。模擬於c中的函式。mysql與sqlserver是不同的。建立儲存過程 conn getconnec...

資料庫 儲存過程

在資料庫中,儲存過程屬於一種物件,是一種高效的安全的訪問資料庫的方法。下邊我們就資料庫中的儲存過程總結它的相關知識點。我們分為概述,實現和管理三個方面來總結。一,儲存過程的概述 1,概念 儲存過程 storedprocedure 是在資料庫伺服器端執行的一組t sql語句的集合,經編譯後存放在資料庫...