在SQL Server 2008中重命名列时出现奇怪的行为

时间:2010-01-25 10:28:48

标签: sql-server-2008 ssms change-script

我需要编写一些代码来重命名SQL Server 2008中的列 在Management Studio中编写脚本时,我得到了双重命名:

NAME1 ==> TEMPNAME ==> NAME2

BEGIN TRANSACTION
GO
EXECUTE sp_rename N'dbo.Table_1.columFirstName', N'Tmp_columSecondName_2', 'COLUMN' 
GO
EXECUTE sp_rename N'dbo.Table_1.Tmp_columSecondName_2', N'columSecondName', 'COLUMN' 
GO
ALTER TABLE dbo.Table_1 SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

但是,当我一次性完成时,它运作得很好。

为什么首先将列重命名为临时名称?编码重命名算法时是否有意义?

谢谢!

1 个答案:

答案 0 :(得分:8)

您可以在两列之间交换列名。 Management Studio通过将所有列重命名为临时名称,然后将它们重命名为最终名称来支持该功能。

Blorgbeard:在设计窗口右键菜单中,有一个生成更改脚本选项。