1

我使用 SP_RENAME 存储过程重命名表列时犯了一个错误,现在我无法恢复它。这是 SQL Server 的有效标识符吗?

在此处输入图像描述

这就是我所做的:

SP_RENAME '[WTF].[Name]', '[WhatThisFunction]', 'COLUMN'

然后,在看到意外的结果后,我尝试将其回滚

SP_RENAME '[WTF].[WhatThisFunction]', 'Name', 'COLUMN'

但是sql说找不到对象。有什么办法可以逃脱括号?

更新: 错误消息是:消息 15248,级别 11,状态 1,过程 sp_rename,第 215 行参数 @objname 不明确或声明的 @objtype (COLUMN) 错误。

4

2 回答 2

2

这对我有用:

SP_RENAME '[WTF].[[WhatThisFunction]]]', 'Name', 'COLUMN' 
于 2013-03-01T20:15:05.810 回答
2

我不确定为什么删除了答案,但该脚本实际上会将列的名称更改回“名称”。

SP_RENAME '[WTF]."[WhatThisFunction]"', 'name', 'COLUMN'

所以将

SP_RENAME '[WTF].[[WhatThisFunction]]]', 'Name', 'COLUMN' 

如 user1948904 所列。

您首先遇到问题的原因(我也做过同样的事情)是 sp_rename 的第一个参数可以有或没有 [],如果你把 []'s 放在第二个参数上这将包含在名称中。所以你的专栏的名字变成了 [WhatThisFunction] 而不是 WhatThisFunction 这可能是你想要的。

有趣的是,如果您进入设计窗口,列名实际上被列为 [[WhatThisFunction]]],当您编写更改脚本时,它会将其传递给 sp_rename。

于 2013-03-01T20:18:58.803 回答