Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在截断/刷新之间读取数据库表时出现问题_Sql_Sql Server_Database_Sql Server 2008 - Fatal编程技术网

Sql 在截断/刷新之间读取数据库表时出现问题

Sql 在截断/刷新之间读取数据库表时出现问题,sql,sql-server,database,sql-server-2008,Sql,Sql Server,Database,Sql Server 2008,我们需要调用外部web服务来获取一些数据并在本地存储在表中。这个过程需要每10分钟重复一次,因为外部web服务发布的数据变化很快。作为这项工作的一部分,我们需要清除整个表并重新插入web服务发布的当前数据 我们面临的棘手情况是:当表被截断时,用户查询表却没有得到结果,这是什么情况?此结果显示给用户的结果无效 有谁能给我一个建议吗?在这两个操作中使用事务。像这样的 Begin transaction; truncate table populate the new table end transa

我们需要调用外部web服务来获取一些数据并在本地存储在表中。这个过程需要每10分钟重复一次,因为外部web服务发布的数据变化很快。作为这项工作的一部分,我们需要清除整个表并重新插入web服务发布的当前数据

我们面临的棘手情况是:当表被截断时,用户查询表却没有得到结果,这是什么情况?此结果显示给用户的结果无效


有谁能给我一个建议吗?

在这两个操作中使用事务。像这样的

Begin transaction;
truncate table
populate the new table
end transaction

快照隔离保证您将看到的数据是一致的。

在这两个操作周围使用事务。像这样的

Begin transaction;
truncate table
populate the new table
end transaction

快照隔离保证您将看到的数据是一致的。

如果您可以在表上创建视图,则可以将数据加载到新表中,无论需要多长时间来填充它,然后只需更改视图以引用新表。

如果您可以在表上创建视图,然后,您可以将数据加载到一个新表中,无论填充它需要多长时间,然后只需更改视图以引用新表即可