#sql #sql-server #csv
#sql #sql-сервер #csv
Вопрос:
У меня есть .csv
файл (поступающий из Excel), и я использую BULK INSERT
скрипт для вставки его в мою таблицу SQL Server. Количество столбцов в таблице больше, чем количество столбцов в .csv
файле.
Пример: моя таблица в SQL Server содержит 20 столбцов, я хочу указать вставку только для 5 столбцов, которые существуют в моем .csv
файле.
BULK INSERT [DbTest].[dbo].[Costumer]
FROM 'F:DataCostumer2020.csv'
WITH
(FIRSTROW = 0,
FIELDTERMINATOR = ',', --CSV field delimiter
ROWTERMINATOR = 'n', --Use to shift the control to next row
KEEPNULLS,
TABLOCK)
Есть ли какой-либо способ указать столбцы в скрипте вставки, которые будут соответствовать столбцам файла csv?
Заранее благодарю вас 🙂
Комментарии:
1. При использовании
BULK INSERT
определения 2 объекты должны совпадать. Если они этого не делают. вам нужно будетBULK INSERT
преобразовать таблицу в промежуточную таблицу, аINSERT
ее — в конечную таблицу назначения.2. Используйте параметр formatfile или создайте представление с нужными столбцами и вставьте в представление
3. Используйте файл формата, как рекомендует @SMor.