我在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。这是必需的吗?
我猜答案(有点讽刺意味)是使用sp_rename它的优势,因为它实际上在SQL Server上是有效的语法,而前者仅在PostgreSQL(文档)上有效。
sp_rename
要查看-的有效选项,ALTER TABLE请参见MSDN。
ALTER TABLE
这是一个使用示例Sp_rename:
Sp_rename
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
(文档上sp_rename)