[英]How to copy table index to another table in ado.net
我在ado.net中使用SqlBulkCopy将一个表复制到另一个表。 代码是:
using (sourceConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["OTPTestConnectionString"].ConnectionString))
{
sourceConnection.Open();
// Get data from the source table as a SqlDataReader.
SqlCommand commandSourceData = new SqlCommand("SELECT * FROM " + sourceTableName, sourceConnection);
SqlDataReader reader = commandSourceData.ExecuteReader();
using (destConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLExpressDatabaseConnectionString"].ConnectionString))
{
destConnection.Open();
// Perform bulk copy
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection))
{
bulkCopy.DestinationTableName = destTableName;
// Write from the source to the destination.
bulkCopy.WriteToServer(reader);
}
}
reader.Close();
...
它工作正常,但无法将原始表中的主键索引复制到新表中。 我想在Ado.net中进行操作。 谢谢。
我通过使用SqlBulkCopyOptions.KeepIdentity来弄清楚。 该代码是
SqlBulkCopyOptions options = SqlBulkCopyOptions.KeepIdentity;
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection.ConnectionString, options))
{
bulkCopy.DestinationTableName = destTableName;
// Write from the source to the destination.
bulkCopy.WriteToServer(reader);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.