重命名SQL表的最佳方法是什么?

时间:2017-01-08 21:54:14

标签: sql-server tsql

我想用包含最新计算结果的新版本替换SalesResults表。

我想以下SQL Server只需要几毫秒的时间,但对于那时访问SalesResults表的任何用户来说是否安全?

如果没有,我应该将以下内容包含在BEGIN TRANSACTION,COMMIT中,以便它成为吗?

DROP TABLE dbo.SalesResults; 
EXEC sp_rename 'SalesResultsNew', 'SalesResults'

2 个答案:

答案 0 :(得分:3)

我会在非工作时间或维护期间做这样的事情只是为了安全

Begin Transaction

Drop Table dbo.SalesResults
Exec sp_rename 'SalesResultsNew', 'SalesResults'

Commit Transaction

这假设SalesResultsNew表已经存在。

答案 1 :(得分:1)

如果你在一致的基础上这样做(听起来像你),我会使用同义词。因此,您的实际表格将被称为dbo.SalesResults_20170108,您可以执行以下操作:

create synonym dbo.SalesResults for dbo.SalesResults_20170108;

每天,当你准备就绪时,你会移动同义词指向新的SalesResults表。