我在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。这需要吗?
答案 0 :(得分:14)
我想(稍微讽刺)的答案是使用sp_rename
的优点是它实际上是SQL Server上的有效语法,而前者仅在PostgreSQL上有效(documentation)。
要查看ALTER TABLE
的有效选项,请参阅MSDN。
以下是使用Sp_rename
:
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
(sp_rename
上的Documentation)