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

时间:2011-09-09 15:12:34

标签: sql-server-2000

说我有一张桌子:UltimateTable。它有列:UltimateColumn1UltimateColumn2。它们应该重命名

UltimateTable_UltimateColumn1
UltimateTable_UltimateColumn2

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

我知道很多人不喜欢在别名发生时将表名附加到列名。克服它。这是公司的标准。

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

1 个答案:

答案 0 :(得分:3)

我同意米奇的观点,这是一个非常糟糕的主意,你应该把它打死。也就是说,有很简单的方法可以使用目录视图生成这种类型的脚本(不是 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 + '[_]%';

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

相关问题