我正在尝试重命名索引并收到错误:
错误:明确的@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
答案 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'