重命名索引会导致错误显式的@objtype id无法识别

时间:2017-12-11 15:29:32

标签: sql sql-server

我正在尝试重命名索引并收到错误:

  

错误:明确的@objtype' idx_FinData20'未被承认。

我可以看到表和索引都存在。那么问题是什么

     IF ( EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND  TABLE_NAME ='FinData2000_1_old'))
     BEGIN

     EXEC sp_rename  'FinData2000_1_old.idx_FinData2000_1' , 'idx_FinData2000_1', 'idx_FinData20 00_1_old'

     end

2 个答案:

答案 0 :(得分:0)

您使用SP_RENAME的错误语法,默认情况下,它接受两个输入,第一个输入为old name,第二个输入为new name,如果您指定第三个输入一个(可选和用于区分对象),应该是object name

我不确定你的正确案例是什么,但作为一个例子,你可以试试这个:

EXEC SP_RENAME 'INDEX_OLD_NAME', 'INDEX_NEW_NAME', 'INDEX'

作为补充说明:执行rename将有可能破坏剩余的流程。

答案 1 :(得分:0)

首先 - 你的语法错了。您只需要两个参数,第一个应该是table_name.old_name,第二个只是new name。 其次 - 您的新索引名称中有一个额外的空格会破坏脚本。

EXEC sp_rename 'FinData2000_1_old.idx_FinData2000_1' , 'idx_FinData2000_1_old'