Эффективная загрузка данных с помощью BULK INSERT в Transact-SQL: методы и примеры кода

BULK INSERT — это оператор Transact-SQL, используемый в Microsoft SQL Server для эффективной загрузки данных из файла в таблицу. Он обычно используется, когда необходимо быстро вставить в базу данных большие объемы данных. Вот несколько методов и примеров кода, связанных с оператором «BULK INSERT»:

Метод 1: базовый синтаксис массовой вставки

BULK INSERT [database_name].[schema_name].table_name
FROM 'data_file'
WITH (
    FIELDTERMINATOR = 'field_terminator',
    ROWTERMINATOR = 'row_terminator'
);

В этом методе замените [database_name], [schema_name]и table_nameсоответствующими именами базы данных, схемы и таблицы. 'data_file'следует заменить путем и именем файла, содержащего вставляемые данные. 'field_terminator'и 'row_terminator'следует заменить соответствующими символами, используемыми для разделения полей и строк в файле данных.

Метод 2: ОБЪЕМНАЯ ВСТАВКА с файлом формата

BULK INSERT [database_name].[schema_name].table_name
FROM 'data_file'
WITH (
    FORMATFILE = 'format_file'
);

В этом методе файл формата используется для указания сопоставлений столбцов между файлом данных и таблицей. Файл формата обеспечивает большую гибкость при работе с файлами данных различных форматов.

Метод 3: ОБЪЕМНАЯ ВСТАВКА с дополнительными параметрами

BULK INSERT [database_name].[schema_name].table_name
FROM 'data_file'
WITH (
    FIELDTERMINATOR = 'field_terminator',
    ROWTERMINATOR = 'row_terminator',
    FIRSTROW = first_row,
    BATCHSIZE = batch_size,
    MAXERRORS = max_errors
    ...
);

Этот метод включает дополнительные параметры, такие как FIRSTROWдля указания первой вставляемой строки, BATCHSIZEдля указания количества строк в пакете, MAXERRORSчтобы указать максимально допустимое количество ошибок и многое другое.

Это всего лишь несколько примеров использования инструкции «BULK INSERT» в Transact-SQL. В зависимости от ваших конкретных требований вам может потребоваться соответствующим образом настроить синтаксис и параметры.