如果表B上没有运行查询,如何将数据从表A切换到表B.

时间:2018-06-15 04:11:03

标签: sql sql-server

我有2个表A,B,它们具有相同的列。表B用于Tableau报告。表A是一个临时表,其中包含来自源系统的新数据。 当表B上没有运行Query时,如何将数据从表A切换到表B. 我需要这样做,以避免表B停机,并确保表B始终可供用户使用 非常感谢!

2 个答案:

答案 0 :(得分:0)

据我所知,这是你无法用简单的方法做的事情,因为任何RDBMS都会自己处理这个功能。你可以做的唯一事情是将你的插入语句放在transaction块中,以确保在" unready&#中永远不会看到(=查询)结果表B. 34; (=半完成)状态。

答案 1 :(得分:0)

如果我理解你的话就是这种情况;

  

1您将数据加载到 TableA ,然后最终用户使用 TableB

     

2您希望将数据从 TableA 切换到 TableB ,而无需停机

这可以解决您的问题:

truncate table [dbo].[TableB]           alter table [dbo].[TableA]      switch to   [dbo].[TableB]  

此脚本在几毫秒内执行,应该足以满足您的要求。但需要注意的是, TableA TableB 必须完全相同。相同的索引,相同的列等。