Как преодолеть ошибку усечения? - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь использовать мастер импорта и экспорта для перемещения небольшого набора данных из файла CSV в существующую (пустую) таблицу. Я сделал Script Table As> Create To, чтобы получить все DML для этой таблицы. Я знаю тип поля двух полей, которые вызывают проблемы, это varchar (50). Я получаю это сообщение об ошибке:

Error 0xc020902a: Data Flow Task 1: The "Source - Reconciliation_dbo_agg_boc_consolidated_csv.Outputs[Flat File Source Output].Columns["ReportScope"]" failed because truncation occurred, and the truncation row disposition on "Source - Reconciliation_dbo_agg_boc_consolidated_csv.Outputs[Flat File Source Output].Columns["ReportScope"]" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
 (SQL Server Import and Export Wizard)

Максимальная длина всех символов составляет 49, поэтому я не уверен, почему SQL Server жалуется на усечение. Есть ли способ отключить эту проверку ошибок и просто заставить ее работать? Это должно работать как есть! Спасибо всем.

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Максимальная длина всех символов составляет 49, поэтому я не уверен, почему SQL Server жалуется на усечение.

Тип данных по умолчанию для исходного столбца может быть Text при использовании мастера импорта, поэтому измените его на varchar (50), используя расширенную вкладку источника. Проверьте эту ссылку для более подробной информации.

0 голосов
/ 06 июля 2018

В целях безопасности вы можете проверить тип данных столбца как в источнике, так и в месте назначения. Если оба не совпадают, просто объявите все ваши столбцы как varchar внутри таблицы с некоторой максимальной длиной, скажем, например, varchar (max) или varchar (500) и посмотрите, каков будет результат.

Изменение максимальной длины столбца Varchar:

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);

Тогда столбец по умолчанию разрешит пустые значения, даже если он изначально был определен как NOT NULL. т.е. пропуская спецификацию в ALTER TABLE ... ALTER COLUMN всегда обрабатывается как.

ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;

отметьте столбец обнуляемый или не обнуляемый в зависимости от требования, просто измените его.

Используйте следующие шаги для лучшего понимания Как импортировать файл CSV в базу данных с помощью SQL Server Management Studio:

Хотя параметры массового копирования и других параметров массового импорта недоступны на серверах SQL, вы можете импортировать файл в формате CSV в базу данных с помощью SQL Server Management Studio.

Сначала создайте таблицу в своей базе данных, в которую вы будете импортировать файл CSV. После того, как таблица создана:

  • Войдите в базу данных с помощью SQL Server Management Studio.

  • Щелкните правой кнопкой мыши базу данных и выберите Задачи -> Импорт данных ...

  • Нажмите кнопку Далее>.

  • В качестве источника данных выберите Источник плоских файлов. Затем используйте кнопку Обзор, чтобы выбрать файл CSV. Потратьте некоторое время на настройку импорта данных, прежде чем нажимать кнопку Далее>.

  • В качестве пункта назначения выберите правильного поставщика базы данных (например, для SQL Server 2012 вы можете использовать собственный клиент SQL Server 11.0). Введите имя сервера; Установите флажок Использовать проверку подлинности SQL Server, введите имя пользователя, пароль и базу данных, прежде чем нажимать кнопку Далее>.

  • В окне Выбор исходных таблиц и представлений вы можете отредактировать сопоставления перед нажатием кнопки Далее>.

  • Установите флажок Выполнить немедленно и нажмите кнопку Далее>.

  • Нажмите кнопку Готово, чтобы запустить пакет.

0 голосов
/ 05 июля 2018

Есть ли способ отключить эту проверку ошибок и просто заставить ее Работа? Это должно работать как есть! Спасибо всем.

Да. Если вы используете мастер, вы можете просмотреть схему таблицы перед ее запуском и установить флажок, чтобы игнорировать усечение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...