Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Групово вмъкване с квалификатор на текст в SQL Server

Трябва да използвате „файл за формат“, за да приложите квалификатор на текст за групово вмъкване. По същество ще трябва да научите груповото вмъкване, че има потенциално различни разделители във всяко поле.

Създайте текстов файл, наречен "level_2.fmt" и го запазете.

11.0
2
1   SQLCHAR   0  8000   "\","      1     wkt         SQL_Latin1_General_CP1_CI_AS
2   SQLCHAR   0  40   "\r\n"      2     area         SQL_Latin1_General_CP1_CI_AS

Първият ред, "11.0" се отнася до вашата версия на SQL. Вторият ред показва, че вашата таблица, [level2_import], има две колони. Всеки ред след това ще описва колона и се подчинява на следния формат:

[Номер на изходна колона][Тип на данни][Минимален размер][Максимален размер][Образец на разделител][Номер на колона на местоназначение][Име на колона на местоназначение][Чувствителност на главни и малки букви на базата данни]

След като създадете този файл, можете да прочетете данните си със следния израз за групово вмъкване:

BULK INSERT level2_import
FROM 'D:\test.csv'
WITH 
(
  FIRSTROW = 2,
  FORMATFILE='D:\level_2.fmt'
);

Обърнете се към този блог за подробно обяснение на формата на файла.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да вмъкна 10 милиона записа за възможно най-кратко време?

  2. Одит на данни в NHibernate и SqlServer

  3. Съхранена процедура за SQL повикване за всеки ред без използване на курсор

  4. Какъв е препоръчителният размер на партидата за SqlBulkCopy?

  5. Трябва ли да проектирам таблица с първичен ключ varchar или int?