[英]How To Append Data in Bulk Insert
我正在嘗試讀取保存在數據表中的數據塊。使用下面的查詢將這個答案保存在數據表3中,然后使用buk插入TO Table_1。
adapter.SelectCommand = new SqlCommand("SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY DistrictName) AS Row, *FROM Dwh_staging_table) AS a WHERE row BETWEEN 0 AND 1000001", con1);
這是單獨的SQL語句:
SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY DistrictName) AS Row, *
FROM Dwh_staging_table
) AS a
WHERE row BETWEEN 0 AND 1000001
我將如何在Table_1中的1000001之后追加行。
我們使用select
查詢與Limit
在SQLITE
SELECT * from [table-name]限制下限,上限
因此,您的查詢將類似於
SELECT * FROM Dwh_staging_table ORDER BY DistrictName Limit 0, 100000
對於下一個區塊,
SELECT * FROM Dwh_staging_table ORDER BY DistrictName Limit 100000, 200000
這是有關如何在TSql中進行分頁的好文章
http://joelabrahamsson.com/my-favorite-way-to-do-paging-with-t-sql/
您可以使用SqlBulkCopy類。
以下代碼將有效地將數據從SourceTableName @ SourceConnectionString復制到DestinationTableName @ DestinationConnectionString,一次復制100000行。 顯然,用您的連接字符串和表名替換標記。
using (var sourceConnection = new SqlConnection("[SourceConnectionString]"))
using (var destinationConnection = new SqlConnection("[DestinationConnectionString]"))
{
sourceConnection.Open();
destinationConnection.Open();
var sourceCommand = sourceConnection.CreateCommand();
sourceCommand.CommandType = CommandType.Text;
sourceCommand.CommandText = "SELECT * FROM [SourceTableName]";
var sourceReader = sourceCommand.ExecuteReader();
var bulkCopy = new SqlBulkCopy(destinationConnection)
{
DestinationTableName = "[DestinationTableName]",
BatchSize = 100000
};
bulkCopy.WriteToServer(sourceReader);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.