我想用包含最新计算结果的新版本替换SalesResults表。
我想以下SQL Server只需要几毫秒的时间,但对于那时访问SalesResults表的任何用户来说是否安全?
如果没有,我应该将以下内容包含在BEGIN TRANSACTION,COMMIT中,以便它成为吗?
DROP TABLE dbo.SalesResults;
EXEC sp_rename 'SalesResultsNew', 'SalesResults'
答案 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表。