is there any sql statement used to change all column name to UPPER CASE for all tables in database? MS SQL Server.
I got a sql to do that, but not sure whether it`s correct.
- run SQL below
select 'exec sp_rename '''+b.name+'.'+a.name+''','''+UPPER(a.name)+''',''column'''
from syscolumns a, sysobjects b
where a.id=b.id and b.type='U'
order by b.name
- copy and execute the result above
5条答案
按热度按时间ttisahbt1#
If you are upgrading an application from SQL Server 2000 to a later edition, and you are struggeling with SQL Server case sensitivity, I would suggest you look into the SQL Server 2000 compatibility setting before you do drastic changes to the database.
In SQL Server 2008 Management Studio
properties
in the context menuOptions
pageCompatibility Level: SQL Server 2000
At least that is time consuming.
Edit: Since it appears that OP is upgrading his database from SQL Server 2005 to a "new" database on SQL Server 2005, the above strategy might not be optimal.
brjng4g32#
I don't believe there is one command to do this.
However you should be able to write a query which does this, using 1 or 2 cursors and a query like:
This should return all table and columns in your database.
Then use:
To rename each column.
mwkjh3gx3#
Short answer - no.
If you need to do this (and many studies suggest that all upper case names detract from readability), you'll have to generate new tables with these upper case names, copy the data from the old to the new table, drop the old tables, rename the new tables, and re-establish all of the foreign key relationships.
Is there a good reason to do this?
r9f1avp54#
Extending Bravax answer, This will give you a list of commands to execute
You might need to add 'go' in-between lines if you are running as a bulk
afdcj2ne5#