I want to find a sql command or something that can do this where I have a table named tblFoo and I want to name it tblFooBar. However, I want the primary key to also be change, for example, currently it is:
CONSTRAINT [PK_tblFoo] PRIMARY KEY CLUSTERED
And I want a name change to change it to:
CONSTRAINT [PK_tblFooBar] PRIMARY KEY CLUSTERED
Then, recursively go through and cascade this change on all tables that have a foreigh key relationship, eg. from this:
CHECK ADD CONSTRAINT [FK_tblContent_tblFoo] FOREIGN KEY([fooID])
To this:
CHECK ADD CONSTRAINT [FK_tblContent_tblFooBar] FOREIGN KEY([fooID])
Naturally, I am trying not to go through and do this all manually because a) it is an error prone process, and b)it doesn’t scale.
This is just off the top of my head and isn’t complete (you’d need to add similar code for indexes). Also, you would need to either add code to avoid renaming objects from a table with the same base name, but additional characters – for example, this code would also list tblFoo2 and all of its associated objects. Hopefully it’s a start for you though.