我在SQL Server 2008中有一个数据库,在Postgres中有另一个类似的数据库。我打算使用C#开发一个Windows应用程序,它将从TableA
的SQL Server中选择100行数据并插入Postgres中的TableA
。我想继续这个过程,直到插入表A的所有数据。
我可以使用此查询一次选择100行。
SELECT TOP 100 * FROM TableA;
但是如何循环直到插入所有数据?
答案 0 :(得分:0)
for(int i = 0;i < row_Count;i=i+100)
{
string s = "SELECT * FROM TableA where index BETWEEN " + (i+1).ToString + "AND" + (i+100).ToSTring;
// use "s" as your query
}
这里假设您的表已编入索引并从1开始。
我不确定这会不会有效,但它可能会让你有一些想法来解决你的问题。
答案 1 :(得分:0)
而不是循环选择查询尝试使用DataReader使用ResultSet流。 DataReader提供无缓冲的数据流,允许程序逻辑按顺序有效地处理来自数据源的结果。在检索大量数据时,DataReader是一个不错的选择,因为数据没有缓存在内存中