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

时间:2013-10-03 14:49:44

标签: sql sql-server sql-server-2012

我在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 = table。这需要吗?

1 个答案:

答案 0 :(得分:14)

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

要查看ALTER TABLE的有效选项,请参阅MSDN

以下是使用Sp_rename

的示例
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';

sp_rename上的Documentation