国产午夜精品一区二区三区不-国产午夜精品一区二区三区不卡-国产午夜精品一区二区三区极品-国产午夜精品一区二区三区老-国产午夜精品一区二区三区漫-国产午夜精品一区二区三区嫩草

聊城網站制作公司,聊城網站建設,聊城網站優化,聊城網絡公司,聊城網站推廣,聊城網站運營,聊城網絡運營,聊城搜索引擎優化,聊城網頁設計,聊城網站制作
 
 
公司擁有五年的網站建設經驗,專業網站制作,推廣及網站優化,有大量優秀客戶案例
網站建設 | 設為首頁 | 加入收藏 | 聯系我們  
公告:熱烈慶祝聊城精英網絡2010版官方網站改版成功!
當前位置 :首頁 > 網頁知識  

批量修改MSSQL2000中表和視圖及存儲過程的所有者名稱

http://m.zjgjyh.cn   2011-12-15 9:59:07 來源:聊城網絡公司   人氣:

批量修改MSSQL表和視圖及存儲過程的所有者

批量修改表的所有者:  
EXEC   sp_MSforeachtable   'exec   sp_changeobjectowner   ''?'',''dbo''   '  
單個修改表所有者:  
exec   sp_changeobjectowner   '
要改的表名','dbo'  

"?":原所有者的名稱


批量修改視圖和存儲過程的存儲過程:

CREATE   PROCEDURE   ChangeProcOwner  
@OldOwner as   NVARCHAR(128),
@NewOwner as   NVARCHAR(128)
AS  
   
DECLARE   @Name   as   NVARCHAR(128)    
DECLARE   @Owner as   NVARCHAR(128)  
DECLARE   @OwnerName as   NVARCHAR(128)  
   
DECLARE   curObject   CURSOR   FOR    
select 'Name' =   name,  
'Owner' =   user_name(uid)  
from   sysobjects  
where   user_name(uid)=@OldOwner   and   xtype='p'  
order   by   name  
   
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  
end  
   
FETCH   NEXT   FROM   curObject   INTO   @Name,   @Owner  
END  
   
close   curObject  
deallocate   curObject  
GO

執行 exec   ChangeProcOwner   'xx','dbo' --修改視圖所有者要寫上原所有者名
或者
exec   ChangeProcOwner   '?','dbo'

另找一別人的方法,修改視圖跟存儲過程很方便

--執行這個語句,就可以把當前庫的所有表的所有者改為dbo
exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''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

1. sp_changeobjectowner
更改當前數據庫中對象的所有者。

語法
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

參數
[@objname =] 'object'

當前數據庫中現有的表、視圖存儲過程的名稱。object 的數據類型為 nvarchar(517),沒有默認值。object 可用現有對象所有者限定,格式為 existing_owner.object。

[@newowner =] 'owner'

即將成為對象的新所有者的安全帳戶的名稱。owner 的數據類型為 sysname,沒有默認值。owner 必須是當前數據庫中有效的 Microsoft? SQL Server? 用戶或角色或 Microsoft Windows NT? 用戶或組。指定 Windows NT 用戶或組時,請指定 Windows NT 用戶或組在數據庫中已知的名稱(用 sp_grantdbaccess 添加)。

返回代碼值
0
(成功)或 1(失。

注釋
對象所有者(或擁有對象的組或角色的成員)對對象有特殊的權限。對象所有者可以執行任何與對象有關的 Transact-SQL 語句(例如 Insert、Update、DeleteSelect EXECUTE),也可以管理對象的權限。

如果擁有對象的安全帳戶必須要除去,但同時要保留該對象,請使用 sp_changeobjectowner 更改對象所有者。該過程從對象中刪除所有現有權限。在運行 sp_changeobjectowner 之后,需要重新應用要保留的任何權限。

由于這個原因,建議在運行 sp_changeobjectowner 之前,編寫現有權限的腳本。一旦更改了對象的所有權,可能要使用該腳本重新應用權限。在運行該腳本之前需要在權限腳本中修改對象所有者。有關編寫數據庫腳本的更多信息,請參見編寫數據庫文檔和腳本。

可以使用 sp_changedbowner 更改數據庫的所有者。

權限
只有 sysadmin 固定服務器角色和 db_owner 固定數據庫角色成員,或既是 db_ddladmin 固定數據庫角色又是 db_securityadmin 固定數據庫角色的成員,才能執行 sp_changeobjectowner

示例
下面的示例將 authors 表的所有者改為 Corporate\GeorgeW

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW'


請參見
改變數據庫所有者:sp_changedbowner

------------------------------以上摘自sql server 的聯機叢書
注意:
使用sqlserver2000改變對象(object)(如TableSP,View)的所有者(owner)時,需要注意一點:
如果對象改變前的ownerdbo,則直接用:exec sp_changeobjectowner 對象名,新的所有者名就可以成功。如果再需要改變該對象的所有者,則要用如下語法:
exec sp_changeobjectowner "[
所有者].[對象名]",新的所有者。注意,雙引號不可省略,否則提示objectname does not exist

EXEC sp_changeobjectowner 'cqadmin.authors', 111



2.建與原表結構相同表,然后把數據從原表插入到新表,操作方法:

sql server企業管理器中選擇原表點右鍵,選擇所有任務/生存SQL腳本,保存生成的腳本,在腳本中把表的原所有者改成新所有者。然后再把該腳本運行一遍,數據庫中就新生成了一個表,所有者是新所有者,原來的表還在數據庫中沒有被替換。新表和舊表表名相同,所有者不同,此時的新表中沒有數據。

然后再運行下面的語句往新表中插入數據:

Insert INTO CQAdmin.m_actiondef //
新所有者.新表名
Select *
FROM RegaltecDefSchema. CQAdministrator.m_actiondef //
數據庫名.舊所有者.舊表名
運行完了就做完了,可以把舊表刪掉,也可以留著。

專業設計團隊
滿足您的各種設計要求
實力程序開發團隊
為您定制各種程序模塊
后臺管理高效安全
方便更新上傳網站資料
全球高速訪問
無盲區、定制異地備份
專業客服團隊
解決一切使用難題
贈送大容量空間郵箱
免費優化推廣
   
關于我們 | 工作機會 | 付款方式 | 網站制作 | 網頁制作 | 網頁設計 | 網絡公司 | 聯系我們 | 網站地圖
版權所有:聊城精英網絡科技有限公司 © 2005-2010 All Rights Reserved.
咨詢專線:0635-6950368 技術專線:15192175820 在線QQ:312817927 1485871644
地址:聊城市閘口科技市場 郵編:252000 蘇ICP備10112026號
主站蜘蛛池模板: 少妇张开双腿自慰流白奖 | 亚洲性久久久影院 | 久久久久久久国产A∨ | 亚洲国产无码在线 | 97久人人做人人妻人人玩精品 | 大胆毛茸茸的湿户 | 国产精品欧美激情第一页 | 制服中文无码二区五区 | 亚洲日韩欧美一区二区三区在线 | 成人免费午夜视频 | 在线国产三级 | 国产一区二区三区日韩欧美 | 国模无码人体一区二区 | 精品无码久久久久久久久久 | 久久www色情成人免费 | 成人艳情一二三区 | 国产偷国产偷亚洲清高app | A片试看120分钟做受视频 | 国产午夜精华无码免费网站 | 亚洲国产黄在线观看 | 免费无码av片在线观看国产 | 国产成人8x人网站视频 | 91香蕉国产线观看免费全集 | 色欲一区二区三区精品 | 91精品欧美激情在线播放 | 欧美片内射欧美美美妇 | 亚洲国产精品sss在线观看av | 羞羞答答APP安装以后在手机哪里 | 18禁止爆乳挤奶头gif动态图 | 精品人妻无码一区二区三区蜜桃一 | 日产精品卡二卡三卡四卡区 | 把女人弄特爽黄a大片 | 亚洲欧洲日韩免费无码h | 精品久久久久久无码不卡 | 中文字幕日本六区小电影 | 日韩少妇内射免费播放18禁裸乳 | 日韩aⅴ精品一区二区三 | 亚洲国产aⅴ精品一区二区蜜桃 | 精品深夜av无码一区二区老年 | 日韩精品国产另 | 91精品综合 |