I have a database with over a 100 tables, stored procedures and views. I would like to rename the data to something more descriptive to the project. Can someone tell me the best practice to do this so that all of the tables, stored procedures and views and the Logical Name and Physical File Name database is updated as well. I found this article on the internet, but was not sure if this is 100% correct. Thanks in advance!

No, the tables, stored procedures and views are not named with the database name. What I meant was, for example, every stored procedure when you look at the code, reference the database name at the beginning. Like this..

You do need to consider any cross database references in existing code. processes outside the database that rely on connection strings, SQLCMD or OSQL script files, source control code, etc.

I have found that changing the the name of existing objects is just not worth it. It's hard enough on new project that has been under way for a little while but on projects that are deployed, in use and been around can be a nightmare. Especially if it is just a matter of not being descriptive enough.

I've lived with some stupid names. And that is why the worst part of my job when I have to come up with new object names. It can take me longer to decide on one stupid column name than it takes me to code half the app

No, the article is certainly not the best approach to use to rename a db.

In particular, you do NOT want to detach a db; that's an obsolete method of renaming it. Instead, you make the needed changes in the master db using ALTER commands; there are examples in Books Online. Then take the db OFFLINE and back ONLINE to put the changes into affect.

The "USE <db_name>" when you look at a stored proc are generated at that time, so a db name change won't be any issue there.

However, any cross-database references you have, or any 3-part names within the db code, will NOT automatically be changed. You need to idenity and change all those yourself.