我尝试使用this procedure重命名SQL Server中命名错误的列。生成的语句似乎正确:
EXEC sp_rename '[TBL_TAXREPORTtestxxx].["InsertedOn"]', 'InsertedOn', 'COLUMN'
然而,这给了我以下错误:
Msg 15248, Level 11, State 1, Procedure sp_rename, Line 266
Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.
有任何线索吗?
答案 0 :(得分:0)
选项1:您可以尝试检查是否在正确的数据库中运行查询。
选项2:如果是,请尝试以下操作:
EXEC sp_rename
@objname = 'TBL_TAXREPORTtestxxx."[InsertedOn]"', --or @objname = 'TBL_TAXREPORTtestxxx."InsertedOn"'
@newname = 'InsertedOn',
@objtype = 'COLUMN'
选项3:如果上述操作也失败,那么您可以尝试创建一个所有名称都正确的新表,并将现有表中的数据复制到新表中并删除前一个表。最后重命名表。
修改强>
选项4:正如Gordon在评论中所说,您可能还想检查架构。
EXEC sp_rename
@objname = '[dbo].TBL_TAXREPORTtestxxx."[InsertedOn]"',
@newname = 'InsertedOn',
@objtype = 'COLUMN'