SQL - 以编程方式重命名数据库中的所有表列

发布于 2024-12-03 22:34:38 字数 369 浏览 0 评论 0原文

假设我有一个表:UltimateTable。它具有以下列:UltimateColumn1UltimateColumn2。它们应重命名为

UltimateTable_UltimateColumn1
UltimateTable_UltimateColumn2

我相信我可以使用 sp_MSForEachTable 迭代表。如何使用 T-SQL 重命名每个示例中单个数据库中的所有表?

我知道很多人不喜欢在别名可以的情况下将表名附加到列名上。克服它。这是公司标准。

(j/k我也讨厌它......)

Say I have a table: UltimateTable. It has columns: UltimateColumn1, UltimateColumn2. They should be renamed

UltimateTable_UltimateColumn1
UltimateTable_UltimateColumn2

I believe I can iterate tables with sp_MSForEachTable. How can I rename all the tables in a single database per the example with T-SQL?

I know a lot of people are not a fan of appending table names to column names when an alias will do. Get over it. It's the company standard.

(j/k I hate it too...)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

微暖i 2024-12-10 22:34:38

我同意米奇的观点,这是一个非常糟糕的主意,你应该与之抗争到底。也就是说,有一些简单的方法可以使用目录视图生成此类脚本(不是 sp_MSForEachTable,无论如何,它仍然只能获取表名,而不是列名)。

在一个窗口中运行此命令:

SELECT 'EXEC sp_rename ''' + QUOTENAME(TABLE_SCHEMA) 
  + '.' + QUOTENAME(TABLE_NAME) + '.' 
  + QUOTENAME(COLUMN_NAME) + ''', ''' 
  + TABLE_NAME + '_' + COLUMN_NAME + ''', ''COLUMN'';'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME NOT LIKE TABLE_NAME + '[_]%';

现在将输出复制并粘贴到新窗口中。在执行之前检查一遍 - 并首先在测试数据库上测试它!

I agree with Mitch that this is a seriously bad idea and you should fight it to the death. That said, there are easy ways to generate this type of script using the catalog views (not sp_MSForEachTable, which still only gets you the table names, not the column names, anyway).

Run this in one window:

SELECT 'EXEC sp_rename ''' + QUOTENAME(TABLE_SCHEMA) 
  + '.' + QUOTENAME(TABLE_NAME) + '.' 
  + QUOTENAME(COLUMN_NAME) + ''', ''' 
  + TABLE_NAME + '_' + COLUMN_NAME + ''', ''COLUMN'';'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME NOT LIKE TABLE_NAME + '[_]%';

Now copy and paste the output into a new window. Check it over before executing - and test it on a test database first!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文