(4.42)sql server修改數據庫名、表名、列名


【1】基本操作

【1.1】修改數據庫名:sp_renamedb 

Use master;
EXEC sp_dboption 'DBNAME_OLD', 'Single User', 'TRUE' 
--修改數據庫名
EXEC sp_renamedb 'DBNAME_OLD', 'DBNAME_NEW' 
EXEC sp_dboption 'DBNAME_NEW', 'Single User', 'FALSE' 

【1.2】修改表名:sp_rename 

--下例將表 customers 重命名為 custs。 

EXEC sp_rename 'customers', 'custs' 

【1.3】修改列名:sp_rename 

exec sp_rename '[表名].[列名]','[新列名]'

【2】核心注意事項

【2.1】需要的權限

  sysadmin 固定服務器角色成員、db_owner 和 db_ddladmin 固定數據庫角色成員或對象所有者可以執行 sp_rename。

  只有 sysadmin 和 dbcreator 固定服務器角色成員才能將"database"作為 object_type 來執行 sp_rename。 

【2.2】重命名存儲過程、視圖、表、字段的區別

(1)重命名存儲過程和視圖

  重命名存儲過程和視圖后,請清空過程高速緩存以確保所有相關的存儲過程和視圖都重新編譯。 

  由於存儲過程和視圖都不存儲數據,所以這兩種對象均可快速刪除和重建。

  重命名文本對象時,要獲得最佳結果,應刪除並使用其新名稱重新創建對象。

(2)重命名表、字段

  需要刷新視圖,以保證select *  等操作,更好的引用表、字段。

--刷新對象定義,可以解決
exec sp_refreshsqlmodule 'SP_2nd'
--如果是視圖,也可以這樣刷新
exec sp_refreshview 'view_name'

--批量刷新視圖
SELECT DISTINCT
'EXEC sp_refreshview ''' + name + ''''
FROM    db_tank.sys.objects AS so
WHERE   so.type = 'V'

參考:查看數據庫對象的引用關系,查看數據庫對象的依賴關系

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM