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

发布于 2024-08-18 21:30:00 字数 490 浏览 4 评论 0原文

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

NAME1 ==>临时名称==> 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

但是当我一次性完成时,效果很好。

为什么列首先重命名为临时名称?编写重命名算法来执行相同操作是否有意义?

谢谢!

I need to write some code for renaming a column in SQL Server 2008.
When scripting that in Management Studio I got a double renaming :

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

But when I do it in one go, It works just fine.

Why the column first is renamed to a temporary name? Does it makes sense when coding a renaming algoritm to do the same?

Thanks!

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

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

发布评论

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

评论(1

演出会有结束 2024-08-25 21:30:00

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

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

You can swap column names between two columns. Management studio supports that by renaming all columns to temporary names, and then renaming them to the final names.

Blorgbeard: In the Design Window right-click menu, there is a generate change script choice.

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