4

我在 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 = 表。这是必需的吗?

4

1 回答 1

15

我想(略带讽刺意味的)答案是使用它的优势sp_rename在于它实际上是 SQL Server 上的有效语法,而前者仅在 PostgreSQL 上有效(文档)。

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

下面是一个使用示例Sp_rename

EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';

(关于文档sp_rename

于 2013-10-03T14:57:22.443 回答