【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'
