【发布时间】:2023-03-14 03:47:01
【问题描述】:
我在 sql server 2012 中有一个需要重命名的 sql 表。我知道在其他数据库系统中执行此操作的方法如下:
ALTER TABLE table_name
RENAME TO new_table_name;
但是,SQL Server 似乎需要不同的语法。在 SQL Management Studio 中,我在设计视图中重命名了表并右键单击生成更改脚本,它产生了以下内容:
BEGIN TRANSACTION
GO
EXECUTE sp_rename N'table_name', N'new_table_name', 'OBJECT'
GO
ALTER TABLE new_table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
使用sp_rename 是重命名的最佳做法吗?
它还生成了一个附加行来设置 lock_esclation = 表。这是必需的吗?
【问题讨论】:
-
ALTER TABLE ... RENAME ...语法在我使用过的任何版本的 SQL Server 上都无效 - 它也不会出现在 MSDN 上。从快速谷歌来看,它似乎是 postgresql 语法。 -
确实如此。甚至MSDN 在其示例中也列出了
sp_rename。 (另外,回复:LOCK_ENCAPSULATION,stackoverflow.com/questions/1703597/…)
标签: sql sql-server sql-server-2012