我有一个以小写字母开头的列列表。这个列表有270条记录,这意味着我在数据库中有270个列名,应该重命名为大写字母开始。我有这个脚本的列表:
select * from information_schema.columns where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
我想要一个查询生成Alter脚本为我的Select语句的每条记录的格式如下:
ALTER TABLE [TableName] RENAME COLUMN [OldColumnName] TO [NewColumnName];
或像这样:
ALTER TABLE TableName CHANGE COLUMN OldColumnName NewColumnName Data Type;
旧的[Old_Column_Name]以小写字母开头,所以[New_Column_Name]应该以大写字母开头。
示例:old Name = user ==>新名称=用户
谢谢。
虽然我仍然不完全清楚你在寻找什么,以及这是否会实际改变数据库中的案例名称(设置各不相同),以下应该工作:
select 'EXEC sp_rename '''+TABLE_SCHEMA+'.'+TABLE_NAME+'.'+COLUMN_NAME+''', '''
+CHAR( ASCII(LEFT(COLUMN_NAME,1))-32 ) + SUBSTRING(COLUMN_NAME,2,LEN(COLUMN_NAME))
+''', ''COLUMN''; '
from information_schema.columns where ascii(left(column_name, 1)) between ascii('a') and ascii('z');