Sql server 参数@objname不明确或声明的@objtype(索引)错误

Sql server 参数@objname不明确或声明的@objtype(索引)错误,sql-server,sql-server-2016,Sql Server,Sql Server 2016,使用SQL Server 2016,当我运行以下命令时: SELECT * FROM sys.indexes WHERE name = 'idx_Parts_PartNum' 有一个结果。正如所料。但在同一数据库上运行时: exec sp_rename N'idx_Parts_PartNum', N'ux_Parts_PartNum', N'INDEX' 我得到这个错误: 参数@objname不明确或声明的@objtype(索引)错误 如果第一个查询显示此索引名是正确的,那么是什

使用SQL Server 2016,当我运行以下命令时:

SELECT * 
FROM sys.indexes 
WHERE name = 'idx_Parts_PartNum'
有一个结果。正如所料。但在同一数据库上运行时:

    exec sp_rename N'idx_Parts_PartNum', N'ux_Parts_PartNum', N'INDEX'
我得到这个错误:

参数@objname不明确或声明的@objtype(索引)错误

如果第一个查询显示此索引名是正确的,那么是什么导致此错误

我在谷歌上搜索过,运气不好。我的索引名不包含无效字符或保留字

注意:这是作为唯一索引而不是唯一约束创建的


我可以使用SQL Server Management Studio无误地重命名索引。

您需要提供索引的完整路径,如文档中所示:

创建表dbo.YourTable(ID int);
去
在dbo.YourTable(ID)上创建唯一索引IX_YourIndex;
去
EXEC sp_重命名N'dbo.YourTable.IX_yourdex',N'UX_yourdex','INDEX'--模式、表、索引
去
删除表dbo.YourTable;

您需要给出索引的完整路径,如文档中所示:

创建表dbo.YourTable(ID int);
去
在dbo.YourTable(ID)上创建唯一索引IX_YourIndex;
去
EXEC sp_重命名N'dbo.YourTable.IX_yourdex',N'UX_yourdex','INDEX'--模式、表、索引
去
删除表dbo.YourTable;

哦,我明白了。谢谢。不客气@DeveloperWebs。如果这回答了问题,请接受它作为解决方案,以便将来的读者知道它是有帮助的。谢谢我还建议你在其他问题上也这样做,因为你只有64个问题。我读了MS的例子,我想我误解了它是。。。现在我明白了……哦,我明白了。谢谢。不客气@DeveloperWebs。如果这回答了问题,请接受它作为解决方案,以便将来的读者知道它是有帮助的。谢谢我还建议你在其他问题上也这样做,因为你只有64个问题。我读了MS的例子,我想我误解了它是。。。现在我明白了。。