У меня есть несколько файлов CSV, которые я хочу импортировать в базу данных SQL Server. Я знаю, возможно ли это с помощью BULK insert, но я хочу решение, так что также таблица импорта автоматически создается до на основе первой строки CSV файлов, это имена столбцов.
Импорт CSV в SQL Server (включая автоматическое создание таблицы)
Ответ 1
SQL Server Management Studio предоставляет инструмент мастера импорта/экспорта, который имеет возможность автоматически создавать таблицы.
Вы можете получить к нему доступ, щелкнув правой кнопкой мыши по базе данных в обозревателе объектов и выбрав Задачи- > Импорт данных...
Оттуда мастер должен быть понятным и простым в навигации. Вы выбираете CSV в качестве источника, желаемого адресата, настраиваете столбцы и запускаете пакет.
Если вам нужны подробные рекомендации, есть много онлайн-гидов, вот хороший: http://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/
Ответ 2
Вы можете создать переменную таблицы temp и вставить в нее данные, а затем вставить данные в фактическую таблицу, выбрав ее из таблицы temp.
declare @TableVar table
(
firstCol varchar(50) NOT NULL,
secondCol varchar(50) NOT NULL
)
BULK INSERT @TableVar FROM 'PathToCSVFile' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
GO
INSERT INTO dbo.ExistingTable
(
firstCol,
secondCol
)
SELECT firstCol,
secondCol
FROM @TableVar
GO