使用sp_rename重命名SQL表有什么好处?

dot*_*etE 3 sql sql-server sql-server-2012

我在sql server 2012中有一个sql表,我需要重命名.我知道在其他数据库系统中执行此操作的方法如下:

ALTER TABLE table_name
  RENAME TO new_table_name;
Run Code Online (Sandbox Code Playgroud)

但是,似乎SQL Server需要不同的语法.从SQL Management Studio我在设计视图中重命名了表,然后右键单击Generate Change Script,它产生了以下内容:

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
Run Code Online (Sandbox Code Playgroud)

使用sp_rename是重命名的最佳实践吗?

还有一个额外的行来生成lock_esclation = table.这需要吗?

Bri*_*dge 14

我猜(稍微讽刺)的答案是使用的优点sp_rename是它实际上是SQL Server上的有效语法,而前者仅在PostgreSQL(文档)上有效.

要查看有效选项ALTER TABLE- 请参阅MSDN.

以下是使用示例Sp_rename:

EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
Run Code Online (Sandbox Code Playgroud)

(文档sp_rename)