问题
I have a sql table in sql server 2012 that I need to rename. I know in other database systems a way of executing this is the following:
ALTER TABLE table_name
RENAME TO new_table_name;
However, it seems SQL Server requires different syntax. From SQL Management Studio I renamed the table in the Design View and right clicked to Generate Change Script, and it produced the following:
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
Is using sp_rename the best practice for renaming?
Also there is an additional line it generated to set the lock_esclation = table. Is this required?
回答1:
I guess the (slightly sarcastic) answer is the advantage to using sp_rename
is that it is actually valid syntax on SQL Server, whereas the former is only valid on PostgreSQL (documentation).
To see the valid options for ALTER TABLE
- see MSDN.
Here is an example of using Sp_rename
:
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
(Documentation on sp_rename
)
来源:https://stackoverflow.com/questions/19162326/what-is-the-advantage-of-using-sp-rename-to-rename-a-sql-table