Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Klassen SqlBulkCopy kan endast användas för att skriva data till SQL Server-tabeller. Kodexemplen som visas i det här avsnittet använder SQL Servers exempeldatabas, AdventureWorks. För att undvika att ändra befintliga tabellkodexempel skriver du data till tabeller som du måste skapa först.
Tabellerna BulkCopyDemoMatchingColumns och BulkCopyDemoDifferentColumns baseras båda på AdventureWorksProduction.Products tabellen. I kodexempel som använder dessa tabeller läggs data till från Production.Products tabellen i en av dessa exempeltabeller. Tabellen BulkCopyDemoDifferentColumns används när exemplet visar hur du mappar kolumner från källdata till måltabellen. BulkCopyDemoMatchingColumns Används för de flesta andra exempel.
Några av kodexemplen visar hur du använder en SqlBulkCopy klass för att skriva till flera tabeller. För dessa exempel används tabellerna BulkCopyDemoOrderHeader och BulkCopyDemoOrderDetail som måltabeller. Dessa tabeller baseras på tabellerna Sales.SalesOrderHeader och Sales.SalesOrderDetail i AdventureWorks.
Kommentar
SqlBulkCopy Kodexemplen visar syntaxen. Om käll- och måltabellerna finns i samma SQL Server-instans använder du en Transact-SQL-instruktion (T-SQL) INSERT ... SELECT för att kopiera snabbare.
Tabellkonfiguration
Om du vill skapa de tabeller som krävs för att kodexemplen ska köras korrekt måste du köra följande Transact-SQL-instruktioner i en SQL Server-databas.
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]