BULK INSERT in SQL SERVER
BULK INSERT
Syntax:
FROM '<FilePath>'
WITH (
FIELDTERMINATOR = '<Delimiter>',
ROWTERMINATOR = '<RowDelimiter>',
FIRSTROW = <RowNumber>, -- Optional
LASTROW = <RowNumber>, -- Optional
CODEPAGE = '<CodePage>', -- Optional
TABLOCK -- Optional
);
FIELDTERMINATOR: Specifies the delimiter separating fields
(e.g., , for CSV).
ROWTERMINATOR: Specifies the delimiter separating rows
(e.g., \n or \r\n).
FIRSTROW and LASTROW: Control which rows are imported
(useful if you want to skip headers or limit the rows).
CODEPAGE: Specifies the character encoding (e.g., 65001 for
UTF-8).
TABLOCK: Option to apply a table-level lock for better
performance during the insert.
Example:
BULK INSERT Orders
FROM 'C:\Data\Orders.csv'
WITH (
FIELDTERMINATOR =
',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
);
Example using stored Procdure:
@OrdersFilePath NVARCHAR(255),
@OrderDetailsFilePath NVARCHAR(255)
AS
BEGIN
BEGIN TRANSACTION;
BULK INSERT Orders
FROM @OrdersFilePath
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
);
FROM @OrderDetailsFilePath
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
FIRSTROW = 2
);
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
END CATCH
END;
Calling Stored Procedure:
EXEC BulkInsertOrdersAndDetails @OrdersFilePath = 'C:\Data\Orders.csv',
@OrderDetailsFilePath = 'C:\Data\OrderDetails.csv';
Comments
Post a Comment