参数@objname 不明确或声明的@objtype (INDEX) 错误
Either the parameter @objname is ambiguous or the claimed @objtype (INDEX) is wrong
当我 运行 使用 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'
我收到这个错误:
Either the parameter @objname is ambiguous or the claimed @objtype (INDEX) is wrong.
鉴于第一个查询显示此索引名称是正确的,什么会导致此错误?
我用 Google 搜索过,但没有成功。我的索引名称不包含无效字符或保留字。
注意:这是作为唯一索引创建的,不是唯一约束。
我可以使用 SQL Server Management Studio 重命名索引而不会出错。
您需要给出索引的完整路径,如文档中example所示:
CREATE TABLE dbo.YourTable (ID int);
GO
CREATE UNIQUE INDEX IX_YourIndex ON dbo.YourTable (ID);
GO
EXEC sp_rename N'dbo.YourTable.IX_YourIndex',N'UX_YourIndex','INDEX'; --Schema, Table, Index
GO
DROP TABLE dbo.YourTable;
这对我有用,我在重命名索引时缺少 table。
USE database ;
GO
EXEC
sp_rename N'Schema.Table.old_INDEX',
N'new_INDEX',
N'INDEX' ;
GO
当我 运行 使用 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'
我收到这个错误:
Either the parameter @objname is ambiguous or the claimed @objtype (INDEX) is wrong.
鉴于第一个查询显示此索引名称是正确的,什么会导致此错误?
我用 Google 搜索过,但没有成功。我的索引名称不包含无效字符或保留字。
注意:这是作为唯一索引创建的,不是唯一约束。
我可以使用 SQL Server Management Studio 重命名索引而不会出错。
您需要给出索引的完整路径,如文档中example所示:
CREATE TABLE dbo.YourTable (ID int);
GO
CREATE UNIQUE INDEX IX_YourIndex ON dbo.YourTable (ID);
GO
EXEC sp_rename N'dbo.YourTable.IX_YourIndex',N'UX_YourIndex','INDEX'; --Schema, Table, Index
GO
DROP TABLE dbo.YourTable;
这对我有用,我在重命名索引时缺少 table。
USE database ;
GO
EXEC
sp_rename N'Schema.Table.old_INDEX',
N'new_INDEX',
N'INDEX' ;
GO