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