【发布时间】:2021-03-02 12:06:53
【问题描述】:
我有一个 SQL Server 2019 数据库(一个很大的)。这个数据库有大约 3000 列和大约 200 个表,对于每个表,我们至少有 3 个存储过程。
无论如何,我们在这个数据库中有一些以小写字母开头的列,例如userID。他们应该是UserID。我的老板说我们应该重命名所有这些列。我使用Select 语句来查找这些列。
代码如下:
select * from information_schema.columns where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
所以我有 Column Name , Table Name 和 Schema Name 。 我想要一个查询来生成一些脚本来重命名整个数据库中以大写字母开头的这些列。(过程、表、视图和.....)
查询应该生成这样的脚本:
Alter [sch].[tableName] Alter Column ColumnName INT
如果有更好的方法,请告诉我。
我希望查询或过程执行此操作。
非常感谢...
【问题讨论】:
-
要重命名对象,您需要使用
sys.sp_rename,而不是ALTER。 sp_rename (Transact SQL). -
但是,如果您的数据库采用不区分大小写的排序规则,为什么这很重要?
UserID、userId、USERID都会成功引用该列。但是,如果您使用区分大小写的排序规则,这将是一个巨大的突破性变化。 -
使用您的查询为需要更改的每一列生成带有
sys.sp_rename的行,然后复制所有行并将它们粘贴到 SSMS 中 -
这能回答你的问题吗? rename a column in all the tables - SQL
-
你需要培养的一项技能是在互联网上搜索有用的信息。
标签: sql sql-server ssms sql-server-2019