Freigeben über


Einrichten des Massenkopierbeispiels

ADO.NET herunterladen

Die SqlBulkCopy-Klasse kann nur zum Schreiben von Daten in SQL Server-Tabellen verwendet werden. Die in diesem Thema gezeigten Codebeispiele verwenden die SQL Server-Beispieldatenbank AdventureWorks. Um eine Änderung der vorhandenen Codebeispiele zu vermeiden, schreiben die Codebeispiele Daten in Tabellen, die zuvor von Ihnen erstellt werden.

Die Tabellen "BulkCopyDemoMatchingColumns" und "BulkCopyDemoDifferentColumns " basieren auf der Tabelle "AdventureWorksProduction.Products ". In Codebeispielen, die diese Tabellen verwenden, werden Daten aus der Tabelle "Production.Products " zu einer dieser Beispieltabellen hinzugefügt. Die Tabelle "BulkCopyDemoDifferentColumns" wird verwendet, wenn das Beispiel veranschaulicht, wie Spalten aus den Quelldaten der Zieltabelle zugeordnet werden. BulkCopyDemoMatchingColumns wird für die meisten anderen Beispiele verwendet.

Einige der Codebeispiele zeigen, wie eine Klasse SqlBulkCopy zum Schreiben in mehrere Tabellen verwendet werden kann. Für diese Beispiele werden die Tabellen "BulkCopyDemoOrderHeader " und "BulkCopyDemoOrderDetail" als Zieltabellen verwendet. Diese Tabellen basieren auf den Tabellen "Sales.SalesOrderHeader " und " Sales.SalesOrderDetail " in AdventureWorks.

Hinweis

Die SqlBulkCopy-Codebeispiele werden bereitgestellt, um die Syntax nur für die Verwendung von SqlBulkCopy zu veranschaulichen. Wenn sich die Quell- und Zieltabellen in der gleichen SQL Server-Instanz befinden, ist die Verwendung einer Transact-SQL-Anweisung INSERT … SELECT zum Kopieren der Daten einfacher und schneller.

Tabelleneinrichtung

Zum Erstellen der Tabellen, die für die ordnungsgemäße Ausführung der Codebeispiele erforderlich sind, müssen Sie die folgenden Transact-SQL-Anweisungen in einer SQL Server-Datenbank ausführen.

USE AdventureWorks2022;
GO
  
DROP TABLE IF EXISTS [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]  
  
DROP TABLE IF EXISTS [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]  
  
DROP TABLE IF EXISTS [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]  
  
DROP TABLE IF EXISTS [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]  

Nächste Schritte