Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas SqlBulkCopy dapat digunakan untuk menulis data hanya ke tabel SQL Server. Sampel kode yang diperlihatkan dalam topik ini menggunakan database sampel SQL Server, AdventureWorks. Untuk menghindari terubahnya sampel kode tabel yang ada, tulis data ke tabel yang harus Anda buat terlebih dahulu.
Tabel BulkCopyDemoMatchingColumns dan BulkCopyDemoDifferentColumns keduanya didasarkan pada AdventureWorksProduction.Products tabel. Dalam sampel kode yang menggunakan tabel ini, data ditambahkan dari Production.Products tabel ke salah satu tabel sampel ini. Tabel BulkCopyDemoDifferentColumns digunakan saat sampel menggambarkan cara memetakan kolom dari data sumber ke tabel tujuan; BulkCopyDemoMatchingColumns digunakan untuk sebagian besar sampel lainnya.
Beberapa sampel kode menunjukkan cara menggunakan satu kelas SqlBulkCopy untuk menulis ke beberapa tabel. Untuk sampel ini, BulkCopyDemoOrderHeader tabel dan BulkCopyDemoOrderDetail digunakan sebagai tabel tujuan. Tabel-tabel ini didasarkan pada tabel Sales.SalesOrderHeader dan tabel Sales.SalesOrderDetail di AdventureWorks.
Catatan
Contoh SqlBulkCopy kode menunjukkan sintaksnya. Jika tabel sumber dan tujuan berada dalam instans SQL Server yang sama, gunakan pernyataan Transact-SQL (T-SQL) INSERT ... SELECT untuk salinan yang lebih cepat.
Penyiapan Tabel
Untuk membuat tabel yang diperlukan agar sampel kode berjalan dengan benar, Anda harus menjalankan pernyataan Transact-SQL berikut dalam database SQL Server.
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]