SQL Server: How to rename an index
When you create a table with a primary key in SQL Server, SQL Server creates an index for you with an automatically generated name, like PK__acctreg__29819341. I find the naming convention they use to be annoying, so I wanted to be able to change the name. Here's how:
-- to find the names of your current indexes
use my_database
select tab.name table_name, idx.name index_name
from sysobjects tab
left join sysindexes idx on idx.id = tab.id
where tab.xtype = 'U'
order by 1
-- to rename an existing index
exec sp_rename 'company.PK__company__1ED599B2', 'company$companyID', 'INDEX'
worth noting if you have funky characters in your index names (eg dots) you need to wrap with [ ] brackets.
ReplyDeleteeg.
exec sp_rename 'dbo.company.[PK__company.foo]', 'PK__company.bar', 'index'