Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De SqlBulkCopy klasse kan worden gebruikt om alleen gegevens naar SQL Server-tabellen te schrijven. De codevoorbeelden die in dit onderwerp worden weergegeven, maken gebruik van de SQL Server-voorbeelddatabase, AdventureWorks. Om te voorkomen dat u de bestaande codevoorbeelden van tabellen wijzigt, worden gegevens naar tabellen geschreven die u eerst moet maken.
De tabellen BulkCopyDemoMatchingColumns en BulkCopyDemoDifferentColumns zijn beide gebaseerd op de tabel AdventureWorksProduction.Products. In codevoorbeelden die deze tabellen gebruiken, worden gegevens uit de Production.Products tabel toegevoegd aan een van deze voorbeeldtabellen. De BulkCopyDemoDifferentColumns tabel wordt gebruikt wanneer het voorbeeld laat zien hoe kolommen van de brongegevens worden toegewezen aan de doeltabel. BulkCopyDemoMatchingColumns Deze tabel wordt gebruikt voor de meeste andere voorbeelden.
Enkele codevoorbeelden laten zien hoe u één SqlBulkCopy klasse gebruikt om naar meerdere tabellen te schrijven. Voor deze voorbeelden worden de BulkCopyDemoOrderHeader en BulkCopyDemoOrderDetail tabellen gebruikt als doeltabellen. Deze tabellen zijn gebaseerd op de Sales.SalesOrderHeader tabellen en Sales.SalesOrderDetail tabellen in AdventureWorks.
Notitie
De SqlBulkCopy codevoorbeelden laten de syntaxis zien. Als de bron- en doeltabellen zich in dezelfde SQL Server instance bevinden, gebruikt u een Transact-SQL-instructie (T-SQL) INSERT ... SELECT voor een snellere kopie.
Tabelinstellingen
Als u de tabellen wilt maken die nodig zijn om de codevoorbeelden correct uit te voeren, moet u de volgende Transact-SQL-instructies uitvoeren in een SQL Server-database.
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]