日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

修改MS SQL2000数据库的所有者,很实用

發布時間:2024/4/14 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改MS SQL2000数据库的所有者,很实用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
修改MS SQL2000數據庫的所有者,很實用 2008-10-08 09:04

  有些時候,一個數據庫的管理員,需要將幾個不同的數據庫內的數據合并到一起,如果幾個數據庫的結構基本相同,只需新建一個數據庫,將其它幾個數據庫內的對象復制并追加到新數據庫內并做細微調整即可達到目的,但是,不同的數據庫可能存在不同的用戶賬號,數據庫對象——譬如:表,存儲過程及視圖等——的所有者也可能不同,這樣,在倒入數據時,系統會將同名但不同所有者的數據庫對象識別為不同的對象,會在目標庫中新建對象而非追加,并且會因為目標庫中沒有相應的用戶賬號而報用戶不存在的錯,那么,統一數據庫對象的所有者就狠必要了。

  還是老習慣,下面給出更改數據庫表,存儲過程及視圖所有者的SQL腳本,需要說明的是,這段腳本同樣可以用于將數據庫對象的所有者由DBO用戶更改為其它指定的用戶,使用的方法為:將YourUserName更改為DBO,在原有DBO的位置輸入想要指定的用戶賬號名稱,執行即可,當然,這段腳本代碼在使用的時候是狠靈活的,并非只針對關于DBO與其它指定賬號之間的更改,實踐一下就自然明白了

1. 修改表的所有者

declare @tn varchar(120)

declare table_cursor cursor for
Select '[' + sysusers.name + '].' + sysobjects.name AS table_name
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
Where sysusers.name = 'YourUserName' AND sysobjects.type = 'U'

open table_cursor
fetch next from table_cursor into @tn

while @@FETCH_STATUS = 0
begin
?? exec sp_changeobjectowner @tn, 'dbo'

?? fetch next from table_cursor into @tn
end

close table_cursor
deallocate table_cursor


2. 修改存儲過程的所有者

declare @tn varchar(120)

declare procedure_cursor cursor for
Select '[' + sysusers.name + '].' + sysobjects.name AS procedure_name
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
Where sysusers.name = 'YourUserName' AND sysobjects.type = 'P'

open procedure_cursor
fetch next from procedure_cursor into @tn

while @@FETCH_STATUS = 0
begin
?? exec sp_changeobjectowner @tn, 'dbo'

?? fetch next from procedure_cursor into @tn
end

close procedure_cursor
deallocate procedure_cursor


3. 修改視圖的所有者

declare @tn varchar(120)

declare view_cursor cursor for
Select '[' + sysusers.name + '].' + sysobjects.name AS view_name
FROM sysobjects INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
Where sysusers.name = 'YourUserName' AND sysobjects.type = 'V'

open view_cursor
fetch next from view_cursor into @tn

while @@FETCH_STATUS = 0
begin
?? exec sp_changeobjectowner @tn, 'dbo'

?? fetch next from view_cursor into @tn
end

close view_cursor
deallocate view_cursor

PS,太有用了,收藏。


?

?

FROM:

http://hi.baidu.com/slavewh/blog/item/8fdc4b164cf57e57f3de32ba.html

轉載于:https://blog.51cto.com/shenyubox/424597

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的修改MS SQL2000数据库的所有者,很实用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。