импортировать файл с разделителями в SQL Server 2008 - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь импортировать файл с разделителями канала на SQL Server 2008. Последний столбец очень длинный, поэтому он должен быть varchar (max) или текст.

Я использую мастер импорта.Я установил для источника «Плоский файл», а для назначения - «Собственный клиент Sql».

Я установил «имена столбцов в первой строке данных».

Мастер правильно читает столбецимена, но он хочет сделать каждый столбец varchar (50).Я нашел в мастере вкладку «Дополнительно», где я могу установить типы данных, но кажется, что она задает только тип потока данных, а не таблицу назначения?Несколько диалогов позже я могу «Редактировать сопоставления», который позволяет мне сопоставлять исходные столбцы с целевыми столбцами и устанавливать, могут ли столбцы назначения обнуляться, но не позволяет мне устанавливать тип данных столбцов назначения.

В любом случае, я запутался.Можно ли с помощью мастера импортировать данные, длина которых превышает 50 символов?Потому что, кажется, не хочет меня пускать.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Вы были почти там с настройками "Редактировать сопоставления".Напротив переключателя «Создать таблицу назначения» есть кнопка «Изменить SQL».Но я обычно нахожу, что остальная часть мастера по-прежнему не обновляется, чтобы отразить ваш отредактированный SQL.

Обычно, при таких обстоятельствах, я вручную создаю таблицу с соответствующими столбцами, обнуляемостью и т. Д. Перед запускомВолшебник.

0 голосов
/ 07 сентября 2011

Вы пытались установить тип данных в столбце источника данных на text stream [DT_TEXT]?

enter image description here

Когда я проверял это, он создал столбец в целевой таблице типа text.

Редактировать:

Однако, если вы не хотите создавать таблицу с устаревшим типом данных (см. Комментарий ниже), я рекомендую сначала просто создать таблицу, а затем использовать BULK INSERT :

CREATE TABLE ImportTest (ID INT, Name VARCHAR(50), Description VARCHAR(MAX)) 
GO

BULK INSERT ImportTest
   FROM 'C:\Download\ImportTest.txt'
   WITH 
      (
         FIELDTERMINATOR ='|',
         ROWTERMINATOR ='\n',
         FIRSTROW = 2           -- Skip the header row
      )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...