在 MS Sql Server 中重命名 SQL Server 索引

5

我想通过这个脚本来重命名销售模式下的索引:

EXEC sp_rename N'sales.table.IX1', N'IX2', N'INDEX';  

但是我遇到了这个错误:

要么参数@objname不明确,要么所声明的@objtype(INDEX)是错误的。

我该如何解决?


3
SQL是一种用于查询数据库的语言。你使用的DBMS是什么? - rory.ap
1
你是否在正确的数据库中?你确定没有打错字吗?https://msdn.microsoft.com/zh-cn/library/ms190776.aspx - Pred
1
尝试按照这里提到的方式使用方括号:https://dev59.com/qXA75IYBdhLWcg3w0cjx - sudheeshix
4个回答

3

如果您在其他模式中没有相同的表,请尝试删除模式名称。

EXEC sp_rename N'table.IX1', N'IX2', N'INDEX'; 

1
@EhsanHP 请尝试使用 EXEC sp_rename N'[table].[IX1]', N'IX2', N'INDEX'; - Roman Marusyk

1

因为愚蠢的错误,我在这个问题上花了比必要多几分钟的时间:

EXEC sp_rename N'SCHEMA.TABLE.OLD_INDEX_NAME', N'NEW_INDEX_NAME', N'index';

注意:不要更改N'index',它必须保持这样,以让过程知道您正在修改索引对象。链接到文档


0
将模式添加到表名(括号不是必需的)
exec sp_rename N'[schema].[table].IX_index', N'IX_index_new', N'INDEX';

0

我使用了这个SQL语法,它对我来说很有效。

EXEC sp_rename N'sales.table.IX1', N'sales.table.IX2', N'INDEX';  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接