SSIS Destination новая таблица ntext - PullRequest
0 голосов
/ 23 марта 2012

Почему при запуске задания служб SSIS и указании редактору назначения создать новую таблицу по умолчанию определенные текстовые поля будут иметь тип данных NTEXT в новой таблице, даже если исходная таблица для рассматриваемого поля (полей) - varchar?

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

В моем ответе предполагается, что вы используете источник данных ADO.Net, а соответствующие поля VARCHAR (MAX).

  1. Источники данных ADO.NET преобразуют строки в DT_WSTR (следовательно,N часть NTEXT).Сохранение не в Юникоде можно получить, изменив тип источника потока данных на OLEDB или преобразовав данные в преобразовании преобразования данных.

  2. Этот ответ stackoverflow объясняет, как обрабатывает SQL ServerУАКСНАК (МАКС).Таким образом, я понимаю, что когда SSIS видит VARCHAR (MAX), он знает, что если данные больше 8000 символов, им потребуется преобразование.В результате SSIS автоматически преобразует данные в TEXT и позволяет SQL Server обрабатывать их, вставляя данные в место назначения VARCHAR (MAX).

1 голос
/ 24 марта 2012

потому что VARCHAR (x) и VARCHAR (MAX) - это разные типы SQL Server. Varchar (max) обрабатывается SQL Server как тип данных TEXT.

Вот почему varchar столбцы string [DT_STR] и varchar (max) text stream [DT_TEXT] в SSIS

...