SQL Server 2008 R2 - 如何重命名多个列名?

时间:2012-04-10 06:29:08

标签: sql-server sql-server-2008 tsql ddl

我对SQL Server 2008没有太多经验,我想重命名我的数据库中的所有列(添加到现有名称的前缀)。

我在想:

Foreach( column in table)
(
    column_name = prefix+column_name
)

有办法吗?

非常感谢。

2 个答案:

答案 0 :(得分:4)

您可以尝试以下解决方案:使用游标迭代sys.columns表中的记录,并为每个记录执行sp_rename系统存储过程。 我认为重命名时可能存在完整性问题,因此您需要注意引用这些列的其他对象(例如存储过程)。

更新:MVP说:

  

if you have any indexes, primary keys, unique keys, or foreign keys, they need to be dropped, and then readded, after the columns have been renamed. If you don't do this in the correct order, you will get lots of nasty error message.

答案 1 :(得分:1)

您可以尝试使用sp_RENAME。它一次只允许单列。但您可以在代码上执行此操作以循环每个列。希望能帮助到你。谢谢!