Как я могу вставить таблицу данных в SQL с помощью sqlbulkcopy, если поле datatable для типа string содержит более 10000 символов
Здравствуйте, коллеги-разработчики ! Я столкнулся с проблемой, когда мне нужно вставить Datatable из 1000000 строк (а их много в CSV-файлах) в SQL server. Я использую SqlBulkCopy для этой работы.
Проблема, с которой я сталкиваюсь, заключается в том, что одно из полей в объекте DataTable, то есть типа string, может содержать более 10000 символов. Таблица SQL Server имеет это поле, установленное как Nvarchar(MAX), чтобы соответствовать потребностям.
Увы, когда я пытаюсь вставить его, возникает исключение, и система сообщает мне, что данные будут усечены для конкретного поля, и поэтому операция останавливается.
Что странно, так это то, что поле базы данных не имеет проблем с обработкой размера (так как это Nvarchar(MAX) ).
Я где-то читал в MSDN, что строка содержит более 4000 символов (хотя база данных может ее обрабатывать), вам нужно явно установить объект string ????
Есть какие-нибудь мысли по этому поводу, пожалуйста ?
Если вам потребуются какие-либо дополнительные сведения по этому вопросу, пеласе, дайте мне знать.
Заранее спасибо.
Что я уже пробовал:
- Отображение полей в SqlBulkCopy
- Установка атрибутов для класса записей, который я использую для создания столбцов datatable (например, [StringLengthMax])
- Я использую библиотеку FileHelpers для чтения CSV-файла в DataTable.
Процесс работает нормально, если поле в таблице данных имеет длину <= 4000 символов.