SQL Server重命名含[]的列时遇错误15248的解决方法
解决SQL Server带方括号列名的重命名问题
当列名本身包含方括号时,直接用常规sp_RENAME语法会触发解析错误——因为SQL Server会把方括号当成标识符的边界处理,无法正确识别带方括号的列名。你可以通过以下两种方式解决:
方法一:用双重方括号转义
执行这条语句即可完成重命名:
EXEC sp_RENAME '[db_isdv_itsm].[dbo].[tbl_m_comp_sysboot_time].[[avail_memory_mb]]', 'avail_memory', 'COLUMN'
这里的[[avail_memory_mb]]是关键:外层方括号是SQL识别对象的常规边界,内层双重方括号用来转义列名里的单个方括号,让SQL正确识别实际列名为[avail_memory_mb]。
方法二:用引号包裹列名
如果你的SQL Server默认开启了QUOTED_IDENTIFIER(通常默认是开启状态),也可以用双引号包裹列名:
SET QUOTED_IDENTIFIER ON; EXEC sp_RENAME '[db_isdv_itsm].[dbo].[tbl_m_comp_sysboot_time]."[avail_memory_mb]"', 'avail_memory', 'COLUMN'
验证重命名结果
执行完操作后,用这条语句确认列名已修改:
SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('[db_isdv_itsm].[dbo].[tbl_m_comp_sysboot_time]')
内容的提问来源于stack exchange,提问作者AgnesHira
相关产品推荐
相关产品推荐

