(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'
复制代码

参考:查看数据库对象的引用关系,查看数据库对象的依赖关系

 

posted @   郭大侠1  阅读(1898)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2019-05-07 mysql分页
2019-05-07 (4.31)sql server中的quotename函数
2019-05-07 (4.23)SQL Server中的加密
2018-05-07 T-SQL练习题
点击右上角即可分享
微信分享提示