SQL - 以编程方式重命名数据库中的所有表列
假设我有一个表:UltimateTable
。它具有以下列:UltimateColumn1
、UltimateColumn2
。它们应重命名为
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我同意米奇的观点,这是一个非常糟糕的主意,你应该与之抗争到底。也就是说,有一些简单的方法可以使用目录视图生成此类脚本(不是 sp_MSForEachTable,无论如何,它仍然只能获取表名,而不是列名)。
在一个窗口中运行此命令:
现在将输出复制并粘贴到新窗口中。在执行之前检查一遍 - 并首先在测试数据库上测试它!
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:
Now copy and paste the output into a new window. Check it over before executing - and test it on a test database first!