One of my previous post I have written how to insert data from excel/csv file to Teradata table (URL: http://pauldhip.blogspot.dk/2015/02/insert-data-from-excel-to-terdata-table.html).This time, I am going to explain how to do that in MS SQL.
Lets say, we have a table in the database named Customer_dim which have following columns:
CREATE TABLE [dbo].[Customer_dim](
[Customer_id] [nchar](10) NULL,
[Customer_First_Name] [nchar](10) NULL,
[Customer_Last_Name] [nchar](10) NULL,
[Martial_Status] [nchar](10) NULL
) ON [PRIMARY]
The table need to filled by data from excel. To do so, we need to follow the following steps:
Step 1: Save MS excel file into CSV
The excel file should have same number of columns as in the table.
Now save the excel data as .csv file.
Step 2: Write code to insert data from CSV
BULK INSERT [dbo].[Customer_dim] FROM 'C:\BI Projects\Blog\Dim_Customer_CSV.csv'
WITH (
CHECK_CONSTRAINTS,
DATAFILETYPE='widechar',
FIELDTERMINATOR='|',
ROWTERMINATOR='\n',
KEEPIDENTITY,
TABLOCK
);
Since, my csv file is saved as pipe delimiter so that above SQL code has FIELDTERMINATOR='|'. You need to change that as per your csv format. As well as,vyou need to change your csv file loacation accordingly.
After running the above SQL code, you should able to see below records are inserted to the table.
Lets say, we have a table in the database named Customer_dim which have following columns:
CREATE TABLE [dbo].[Customer_dim](
[Customer_id] [nchar](10) NULL,
[Customer_First_Name] [nchar](10) NULL,
[Customer_Last_Name] [nchar](10) NULL,
[Martial_Status] [nchar](10) NULL
) ON [PRIMARY]
The table need to filled by data from excel. To do so, we need to follow the following steps:
Step 1: Save MS excel file into CSV
The excel file should have same number of columns as in the table.
Fig 1: Data in the excel |
Fig 2: Save as .csv |
Step 2: Write code to insert data from CSV
BULK INSERT [dbo].[Customer_dim] FROM 'C:\BI Projects\Blog\Dim_Customer_CSV.csv'
WITH (
CHECK_CONSTRAINTS,
DATAFILETYPE='widechar',
FIELDTERMINATOR='|',
ROWTERMINATOR='\n',
KEEPIDENTITY,
TABLOCK
);
Since, my csv file is saved as pipe delimiter so that above SQL code has FIELDTERMINATOR='|'. You need to change that as per your csv format. As well as,vyou need to change your csv file loacation accordingly.
After running the above SQL code, you should able to see below records are inserted to the table.
Fig 3: Result set after inserting the data |