修改資料庫表和儲存過程的所有者

2022-08-10 14:06:11 字數 1705 閱讀 4676

sql server 批量修改表和儲存過程的所有者。

批量修改表的所有者:   

exec

sp_msforeachtable   

'exec   sp_changeobjectowner   ''?

'',''dbo'''

單個修改表所有者:  

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

批量修改儲存過程的儲存過程:

**create

procedure

changeprocowner   

@oldowner

asnvarchar

(128

),--

引數原所有者   

@newowner

asnvarchar

(128)--

引數新所有者   

asdeclare

@name

asnvarchar

(128

)     

declare

@owner

asnvarchar

(128

)   

declare

@ownername

asnvarchar

(128

)   

declare

curobject   

cursor

forselect

'name'=

name,   

'owner'=

user_name

(uid)   

from

sysobjects   

where

user_name

(uid)

=@oldowner

andxtype='

p'order

byname   

open

curobject   

fetch

next

from

curobject   

into

@name

,   

@owner

while

(@@fetch_status=0

)   

begin

if@owner

=@oldowner

begin

set@ownername

=@oldowner+'

.'+rtrim

(@name

)   

exec

sp_changeobjectowner   

@ownername

,   

@newowner

endfetch

next

from

curobject   

into

@name

,   

@owner

endclose

curobject   

deallocate

curobject   

go執行

exec

changeprocowner   'xx

','dbo'或者

exec

changeprocowner   '?

','dbo

'

修改資料庫表的所有者SQL

use 資料庫 goexec sp changeobjectowner 原表的所有者.表名 現在的所有者 比如 use sq8wecanwecancom go 物件 table dbo template 指令碼日期 11 30 2010 15 04 43 exec sp changeobjectow...

批量更改資料庫表的所有者

在客戶的資料庫中執行我們的程式時,有時會出現下面錯誤資訊。檢視資料庫表卻發現此表仍然存在,但注意到其所有者不是通常的dbo,而是變成了其它,比如bcs。我們的程式要求資料庫表的所有者為dbo,否則會出錯。那麼如何將資料庫中這些所有者不為dbo的表,變成所有者為dbo呢?執行以下語句可以很方便地批量更...

更改資料庫物件所有者

declare cur cursor for select name from sysobjects where uid user id net4646608 and xtype u or xtype p declare name sysname declare sqlstr varchar 500...