SqlBulkCopyColumnOrderHintCollection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
繼承自 SqlBulkCopyColumnOrderHint的物件集合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
- 繼承
-
SqlBulkCopyColumnOrderHintCollection
範例
下列範例會從 AdventureWorks 範例資料庫中的來源資料表,將資料大量複製到相同資料庫中的目的地資料表。 SqlBulkCopyColumnOrderHint將 s 加入物件的 SqlBulkCopy 中SqlBulkCopyColumnOrderHintCollection,以指定批量複製操作的順序提示。
Important
除非您已如大量複製範例設定中所述建立工作資料表,否則將不會執行此範例。
這個程式碼僅是為了示範使用 SqlBulkCopy 的語法而提供。 如果來源和目的資料表在同一個 SQL Server 實例中,使用 Transact-SQL INSERT … SELECT 語句來複製資料會更簡單且快速。
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;";
}
}
備註
欄位順序提示定義了目標資料表中欄位的排序順序。
如果匯入的資料依據資料表上的叢集索引排序(若有的話),SqlBulkCopy 的效能會提升。 如果資料排序順序與叢集索引鍵的順序不同,或表格中沒有叢集索引,則該排序提示會被忽略。
順序提示可以針對目標資料表中任意數量的欄位指定。 預設情況下,若未提供提示,批量插入操作會假設資料為無序。
提供的資料行名稱必須是目的地資料表中的有效資料行名稱。 提示的指定順序是任意的。 同一欄位名稱不能指定超過一次。
若集合 ColumnMappings 非空,則只能對已映射的有效目的欄提供排序提示。
若 SortOrder 給出 a 為未指定,則擲出 將 ArgumentException 。
建構函式
| 名稱 | Description |
|---|---|
| SqlBulkCopyColumnOrderHintCollection() |
繼承自 SqlBulkCopyColumnOrderHint的物件集合CollectionBase。 |
屬性
| 名稱 | Description |
|---|---|
| Item[Int32] |
取得 SqlBulkCopyColumnOrderHint 指定索引的物件。 |
方法
| 名稱 | Description |
|---|---|
| Add(SqlBulkCopyColumnOrderHint) |
將指定的順序提示加入 SqlBulkCopyColumnOrderHintCollection。 |
| Add(String, SortOrder) |
建立一個新 SqlBulkCopyColumnOrderHint 檔案並加入收藏。 |
| Clear() |
清除收藏內容。 |
| Contains(SqlBulkCopyColumnOrderHint) |
會取得一個值,表示集合中是否存在指定 SqlBulkCopyColumnOrderHint 物件。 |
| CopyTo(SqlBulkCopyColumnOrderHint[], Int32) |
將 的 SqlBulkCopyColumnOrderHintCollection 元素複製到一個從特定索引開始的項目陣列 SqlBulkCopyColumnOrderHint 。 |
| IndexOf(SqlBulkCopyColumnOrderHint) |
取得指定 SqlBulkCopyColumnOrderHint 物件的索引。 |
| Insert(Int32, SqlBulkCopyColumnOrderHint) |
在指定的索引處插入新SqlBulkCopyColumnOrderHint |
| Remove(SqlBulkCopyColumnOrderHint) |
從 中移除指定的 SqlBulkCopyColumnOrderHint 元素 SqlBulkCopyColumnOrderHintCollection。 |
| RemoveAt(Int32) |
從集合中移除指定索引的欄位順序提示。 |