【问题标题】:sql server: mistakenly renamed column with [] . Not able to revert backsql server:错误地用 [] 重命名列。无法恢复
【发布时间】:2017-06-22 17:09:44
【问题描述】:

我错误地使用 sp_rename 重命名了一个表列

exec sp_rename 'qt.Availability.[RateIndicator]','[AvailabilityIndicator]', 'COLUMN'

这导致我的列名变为 [AvailabilityIndi​​cator] 而不仅仅是 AvailabilityIndi​​cator

现在我正在尝试将其还原。我试过了

exec sp_rename 'qt.Availability.[[AvailabilityIndicator]]' , 'AvailabilityIndicator1', 'COLUMN'

我收到错误:解析 SQL 标识符 'qt.Availability.[[AvailabilityIndi​​cator]]' 的语法错误。

也试过了

exec sp_rename 'qt.Availability.[[]AvailabilityIndicator[]]' , 'AvailabilityIndicator1', 'COLUMN'

我收到错误:解析 SQL 标识符 'qt.Availability.[[]AvailabilityIndi​​cator[]]' 的语法错误。

请有任何建议。我真的不想删除并重新创建表

谢谢

【问题讨论】:

  • 右击表格,进入设计,去掉括号,点击保存按钮。

标签: sql sql-server ddl


【解决方案1】:

[ 在引用名称开始后就不是特殊字符,因此不需要转义。

] 是一个特殊字符,必须转义以保持其字面意思。要逃脱它,请加倍。

所以:应该是qt.Availability.[[AvailabilityIndicator]]]

如有疑问,请使用QUOTENAME 函数:SELECT QUOTENAME('[AvailabilityIndicator]') 将为您提供[[AvailabilityIndicator]]]

【讨论】:

  • 这很有帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多