SQL Server преобразует текст каким-либо образом при выполнении BULK INSERT? - PullRequest
1 голос
/ 23 января 2009

Я пытаюсь использовать оператор BULK INSERT для заполнения большой таблицы (17 миллионов строк) в SQL Server из текстового файла. Один столбец типа nchar (17) имеет уникальное ограничение. Я проверил (используя некоторый код Python), что файл не содержит дубликатов, но когда я выполняю запрос, я получаю это сообщение об ошибке от SQL Server:

Невозможно вставить строку повторяющегося ключа в объект 'dbo.tbl_Name' с уникальным индексом 'IX_tbl_Name'.

Может ли сервер каким-то образом преобразовывать текст при выполнении BULK INSERT? Запрещают ли базы данных SQL Server какие-либо знаки препинания в столбцах nchar или требуют их экранирования? Могу ли я узнать, какой ряд вызывает проблемы? Стоит ли переключаться на какой-то другой метод для вставки данных?

Ответы [ 2 ]

3 голосов
/ 23 января 2009

Ваши параметры сортировки в столбце могут приводить к тому, что данные будут выглядеть как дубликаты, тогда как ваш код может воспринимать их как уникальные. Такие вещи, как ударения и заглавные буквы, могут вызывать проблемы при определенных настройках сортировки.

0 голосов
/ 23 января 2009

Другая мысль также состоит в том, что пустые или нулевые значения считаются дубликатами, поэтому ваш код Python, возможно, не обнаружил текстовых дубликатов, но как насчет пустых значений?

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