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

聊城網站制作公司,聊城網站建設,聊城網站優化,聊城網絡公司,聊城網站推廣,聊城網站運營,聊城網絡運營,聊城搜索引擎優化,聊城網頁設計,聊城網站制作
 
 
公司擁有五年的網站建設經驗,專業網站制作,推廣及網站優化,有大量優秀客戶案例
網站建設 | 設為首頁 | 加入收藏 | 聯系我們  
公告:熱烈慶祝聊城精英網絡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片 国模私拍高清大胆 炮战 | 国产午夜精品一区二区在线观看 | 日韩av无码一区二区三区不 | 国产网站免费在线观看 | 一本道道香蕉a | 亚洲区图片区色综合网 | 麻豆精品人妻一区二区三区蜜桃 | 久久精品熟女亚洲AV国产 | 亚洲精品国偷拍自产在线 | 亚洲国产精品丝袜国产自在线 | 一级a一级a爰片免费免免欧美 | 欧美人与动人物牲交免费观看久久 | 日本欧美大码a在线观看 | 亚洲欧美变态卡通自拍 | 熟女少妇丰| 国产精品亚洲最大 | 韩国无码一区二区三区免费视频 | 三级日本高清完整版热播 | 特级做A爰片毛片A片免费 | 一本久久知道综合久久 | 最近免费观看高清日本大全 | 精品亚洲a∨无码一区二区三区 | 亚洲国产日韩一区三区 | 国产91精品久久久久久 | 国产∨亚洲v天堂无码久久久 | 性欧美大战久久久久久 | 亚洲色中文字幕在线播放 | 日本少妇春药特殊按摩3 | 免费无码专区毛片高潮喷水 | 日韩AV在线兔费看 | 一区区中文字幕 | 日韩精品一区二区在线 | 一区区中文字幕 | 精品AV一区二区三区不卡 | 亚洲国产影视 | 日日夜夜天天综合久久 | 亚洲精品成人免费 | 一本道香蕉在线资源 |