Aracılığıyla paylaş


Toplu Kopyalama Örnek Kurulumu

SqlBulkCopy sınıfı yalnızca SQL Server tablolarına veri yazmak için kullanılabilir. Bu konuda gösterilen kod örnekleri, AdventureWorks adlı SQL Server örnek veritabanını kullanır. Mevcut tablo kod örneklerinin değiştirilmesini önlemek için önce oluşturmanız gereken tablolara veri yazın.

BulkCopyDemoMatchingColumns ve BulkCopyDemoDifferentColumns tablolarının her ikisi de AdventureWorks tablosunu temel alır. Bu tabloları kullanan kod örneklerinde, veriler Production.Products tablosundan bu örnek tablolardan birine eklenir. Tablo BulkCopyDemoDifferentColumns , örnek kaynak verilerdeki sütunları hedef tabloya eşlemeyi gösterirken kullanılır; BulkCopyDemoMatchingColumns diğer örneklerin çoğu için kullanılır.

Kod örneklerinden birkaçı, birden çok tabloya yazmak için bir SqlBulkCopy sınıfın nasıl kullanılacağını gösterir. Bu örnekler için ve BulkCopyDemoOrderHeaderBulkCopyDemoOrderDetail tabloları hedef tablolar olarak kullanılır. Bu tablolar AdventureWorks'teki Sales.SalesOrderHeader ve Sales.SalesOrderDetail tablolarını temel alır.

Not

Yalnızca SqlBulkCopy kullanmak için söz dizimini göstermek amacıyla kod SqlBulkCopy örnekleri sağlanmıştır. Kaynak ve hedef tablolar aynı SQL Server örneğinde bulunuyorsa, verileri kopyalamak için Transact-SQL INSERT … SELECT deyimi kullanmak daha kolay ve daha hızlıdır.

Tablo Kurulumu

Kod örneklerinin doğru çalışması için gerekli tabloları oluşturmak için, SQL Server veritabanında aşağıdaki Transact-SQL deyimlerini çalıştırmanız gerekir.

USE AdventureWorks

IF EXISTS (SELECT * FROM dbo.sysobjects
 WHERE id = object_id(N'[dbo].[BulkCopyDemoMatchingColumns]')
 AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    DROP TABLE [dbo].[BulkCopyDemoMatchingColumns]

CREATE TABLE [dbo].[BulkCopyDemoMatchingColumns]([ProductID] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
    [ProductNumber] [nvarchar](25) NOT NULL,
 CONSTRAINT [PK_ProductID] PRIMARY KEY CLUSTERED
(
    [ProductID] ASC
) ON [PRIMARY]) ON [PRIMARY]

IF EXISTS (SELECT * FROM dbo.sysobjects
 WHERE id = object_id(N'[dbo].[BulkCopyDemoDifferentColumns]')
 AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    DROP TABLE [dbo].[BulkCopyDemoDifferentColumns]

CREATE TABLE [dbo].[BulkCopyDemoDifferentColumns]([ProdID] [int] IDENTITY(1,1) NOT NULL,
    [ProdNum] [nvarchar](25) NOT NULL,
    [ProdName] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_ProdID] PRIMARY KEY CLUSTERED
(
    [ProdID] ASC
) ON [PRIMARY]) ON [PRIMARY]

IF EXISTS (SELECT * FROM dbo.sysobjects
 WHERE id = object_id(N'[dbo].[BulkCopyDemoOrderHeader]')
 AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    DROP TABLE [dbo].[BulkCopyDemoOrderHeader]

CREATE TABLE [dbo].[BulkCopyDemoOrderHeader]([SalesOrderID] [int] IDENTITY(1,1) NOT NULL,
    [OrderDate] [datetime] NOT NULL,
    [AccountNumber] [nvarchar](15) NULL,
 CONSTRAINT [PK_SalesOrderID] PRIMARY KEY CLUSTERED
(
    [SalesOrderID] ASC
) ON [PRIMARY]) ON [PRIMARY]

IF EXISTS (SELECT * FROM dbo.sysobjects
 WHERE id = object_id(N'[dbo].[BulkCopyDemoOrderDetail]')
 AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    DROP TABLE [dbo].[BulkCopyDemoOrderDetail]

CREATE TABLE [dbo].[BulkCopyDemoOrderDetail]([SalesOrderID] [int] NOT NULL,
    [SalesOrderDetailID] [int] NOT NULL,
    [OrderQty] [smallint] NOT NULL,
    [ProductID] [int] NOT NULL,
    [UnitPrice] [money] NOT NULL,
 CONSTRAINT [PK_LineNumber] PRIMARY KEY CLUSTERED
(
    [SalesOrderID] ASC,
    [SalesOrderDetailID] ASC
) ON [PRIMARY]) ON [PRIMARY]

Ayrıca bkz.