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...