【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'
来源:oschina
链接:https://my.oschina.net/u/4391429/blog/4270613