在 SQL Server 2008 中重命名列时出现奇怪的行为
我需要编写一些代码来重命名 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在两列之间交换列名称。 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.