在 SQL Server 2019 中编写对目标对象进行更改查询的脚本
Writing an Script That Makes Alter Query For Target Objects in SQL Server 2019
我有一个以小写字母开头的列列表。这个列表有 270 条记录,这意味着我在数据库中有 270 个列名应该重命名为以大写字母开头。
我有这个脚本的列表:
select * from information_schema.columns where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
我想要一个查询为我的 Select 语句的每条记录生成更改脚本,格式如下:
ALTER TABLE [TableName] RENAME COLUMN [OldColumnName] TO [NewColumnName];
或喜欢这个:
ALTER TABLE TableName CHANGE COLUMN OldColumnName NewColumnName Data Type;
旧的 [Old_Column_Name] 以小写字母开头,因此 [New_Column_Name] 应该以大写字母开头。
例如:旧名称 = 用户 ===> 新名称 = 用户
谢谢。
虽然我仍然不完全清楚你在寻找什么,以及这是否会真正改变你数据库中的案例名称(设置不同),但以下应该有效:
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');
我有一个以小写字母开头的列列表。这个列表有 270 条记录,这意味着我在数据库中有 270 个列名应该重命名为以大写字母开头。 我有这个脚本的列表:
select * from information_schema.columns where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
我想要一个查询为我的 Select 语句的每条记录生成更改脚本,格式如下:
ALTER TABLE [TableName] RENAME COLUMN [OldColumnName] TO [NewColumnName];
或喜欢这个:
ALTER TABLE TableName CHANGE COLUMN OldColumnName NewColumnName Data Type;
旧的 [Old_Column_Name] 以小写字母开头,因此 [New_Column_Name] 应该以大写字母开头。
例如:旧名称 = 用户 ===> 新名称 = 用户
谢谢。
虽然我仍然不完全清楚你在寻找什么,以及这是否会真正改变你数据库中的案例名称(设置不同),但以下应该有效:
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');