SqlBulkCopyColumnOrderHintCollection Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
SqlBulkCopyColumnOrderHint Kumpulan objek yang mewarisi dari CollectionBase.
public ref class SqlBulkCopyColumnOrderHintCollection sealed : System::Collections::CollectionBase
public sealed class SqlBulkCopyColumnOrderHintCollection : System.Collections.CollectionBase
type SqlBulkCopyColumnOrderHintCollection = class
inherit CollectionBase
Public NotInheritable Class SqlBulkCopyColumnOrderHintCollection
Inherits CollectionBase
- Warisan
-
SqlBulkCopyColumnOrderHintCollection
Contoh
Contoh berikut menyalin data secara massal dari tabel sumber di database sampel AdventureWorks ke tabel tujuan dalam database yang sama. SqlBulkCopyColumnOrderHints ditambahkan ke SqlBulkCopyColumnOrderHintCollectionSqlBulkCopy objek untuk menentukan petunjuk urutan untuk operasi penyalinan massal.
Penting
Sampel ini tidak akan berjalan kecuali Anda telah membuat tabel kerja seperti yang dijelaskan dalam Penyiapan Contoh Salinan Massal.
Kode ini disediakan untuk mendemonstrasikan sintaks untuk menggunakan SqlBulkCopy saja. Jika tabel sumber dan tujuan berada dalam instans SQL Server yang sama, lebih mudah dan lebih cepat untuk menggunakan pernyataan Transact-SQL INSERT … SELECT
untuk menyalin data.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
// Open a sourceConnection to the AdventureWorks database.
using (SqlConnection sourceConnection =
new SqlConnection(connectionString))
{
sourceConnection.Open();
// Perform an initial count on the destination table.
SqlCommand commandRowCount = new SqlCommand(
"SELECT COUNT(*) FROM " +
"dbo.BulkCopyDemoMatchingColumns;",
sourceConnection);
long countStart = System.Convert.ToInt32(
commandRowCount.ExecuteScalar());
Console.WriteLine("Starting row count = {0}", countStart);
// Get data from the source table as a SqlDataReader.
SqlCommand commandSourceData = new SqlCommand(
"SELECT ProductID, Name, " +
"ProductNumber " +
"FROM Production.Product;", sourceConnection);
SqlDataReader reader =
commandSourceData.ExecuteReader();
// Set up the bulk copy object.
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(connectionString))
{
bulkCopy.DestinationTableName =
"dbo.BulkCopyDemoMatchingColumns";
// Specify the sort order for the ProductNumber column in
// the destination table.
bulkCopy.ColumnOrderHints.Add("ProductNumber", SortOrder.Ascending);
// Write from the source to the destination.
try
{
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// Close the SqlDataReader. The SqlBulkCopy
// object is automatically closed at the end
// of the using block.
reader.Close();
}
}
// Perform a final count on the destination
// table to see how many rows were added.
long countEnd = System.Convert.ToInt32(
commandRowCount.ExecuteScalar());
Console.WriteLine("Ending row count = {0}", countEnd);
Console.WriteLine("{0} rows were added.", countEnd - countStart);
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
}
private static string GetConnectionString()
// To avoid storing the sourceConnection string in your code,
// you can retrieve it from a configuration file.
{
return "Data Source=(local); " +
" Integrated Security=true;" +
"Initial Catalog=AdventureWorks;";
}
}
Keterangan
Petunjuk urutan kolom menentukan urutan pengurutan kolom dalam tabel tujuan.
Performa SqlBulkCopy ditingkatkan jika data yang diimpor diurutkan sesuai dengan indeks berkluster pada tabel, jika ada. Jika data diurutkan dalam urutan yang berbeda dari urutan kunci indeks berkluster atau jika tidak ada indeks berkluster pada tabel, petunjuk urutan diabaikan.
Petunjuk pesanan dapat ditentukan untuk sejumlah kolom dalam tabel tujuan. Secara default, operasi penyisipan massal mengasumsikan data tidak diurutkan jika tidak ada petunjuk yang disediakan.
Nama kolom yang disediakan harus berupa nama kolom yang valid dalam tabel tujuan. Urutan di mana petunjuk dapat ditentukan bersifat arbitrer. Satu nama kolom tidak dapat ditentukan lebih dari sekali.
ColumnMappings Jika koleksi tidak kosong, petunjuk pesanan hanya dapat disediakan untuk kolom tujuan yang valid yang telah dipetakan.
SortOrder Jika diberikan dari Yang Tidak Ditentukan, ArgumentException akan dilemparkan.
Konstruktor
SqlBulkCopyColumnOrderHintCollection() |
SqlBulkCopyColumnOrderHint Kumpulan objek yang mewarisi dari CollectionBase. |
Properti
Item[Int32] |
Mendapatkan objek pada SqlBulkCopyColumnOrderHint indeks yang ditentukan. |