--修改所有使用者表/儲存過程/檢視/觸發器/自定義函式的所有者為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語句的集合,經編譯後存放在資料庫...