综合久久久久亚洲综合|久久久久久久久免费一级黄色片|丰满中年熟妇露脸视频|精品无码一区二区三区性色|国产精品美女久久久久久不卡

29
SQL server 2005 如何批量修改架構(gòu)名(包括表名和存儲(chǔ)過程名)

SQL Server2005可以使用系統(tǒng)存儲(chǔ)過程sp_changeobjectowner更改數(shù)據(jù)庫對象的所有者。 


sp_changeobjectowner 用于更改當(dāng)前數(shù)據(jù)庫中對象的所有者。 

sp_changeobjectowner '對象名(包括架構(gòu)名)','新架構(gòu)名' 

    

  語法   

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

  參數(shù)   

  [@objname   =]   'object'   

  當(dāng)前數(shù)據(jù)庫中現(xiàn)有的表、視圖或存儲(chǔ)過程的名稱。object   的數(shù)據(jù)類型為   nvarchar(517),沒有默認(rèn)值。object   可用現(xiàn)有對象所有者限定,格式為   existing_owner.object。   

  [@newowner   =]   'owner'   

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

  返回代碼值   

  0(成功)或   1(失敗)   

  注釋   

  對象所有者(或擁有對象的組或角色的成員)對對象有特殊的權(quán)限。對象所有者可以執(zhí)行任何與對象有關(guān)的   Transact-SQL   語句(例如   INSERT、UPDATE、DELETE、SELECT   或   EXECUTE),也可以管理對象的權(quán)限。   

  如果擁有對象的安全帳戶必須要除去,但同時(shí)要保留該對象,請使用   sp_changeobjectowner   更改對象所有者。該過程從對象中刪除所有現(xiàn)有權(quán)限。在運(yùn)行   sp_changeobjectowner   之后,需要重新應(yīng)用要保留的任何權(quán)限。   

  由于這個(gè)原因,建議在運(yùn)行   sp_changeobjectowner   之前,編寫現(xiàn)有權(quán)限的腳本。一旦更改了對象的所有權(quán),可能要使用該腳本重新應(yīng)用權(quán)限。在運(yùn)行該腳本之前需要在權(quán)限腳本中修改對象所有者。有關(guān)編寫數(shù)據(jù)庫腳本的更多信息,請參見編寫數(shù)據(jù)庫文檔和腳本。  



批量修改請用: 


方法一:使用游標(biāo)


 

 

declare @name sysname 

declare csr1 cursor 

for select TABLE_NAME from INFORMATION_SCHEMA.TABLES 

open csr1

FETCH NEXT FROM csr1 INTO @name 

while (@@FETCH_STATUS=0) 

BEGIN 

SET @name='原架構(gòu)名.'+@name

EXEC SP_ChangeObjectOwner @name, '新架構(gòu)名' 

fetch next from csr1 into @name

END 

CLOSE csr1 

DEALLOCATE csr1 


這條幫助是否解決了您的問題? 已解決 未解決

提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好! 很抱歉未能解決您的疑問。我們已收到您的反饋意見,同時(shí)會(huì)及時(shí)作出反饋處理!