2013-11-28 2 views
1

У меня есть следующая проблема. У меня есть файл .tsv (для фильмов, лет и жанров). Я хочу, чтобы загрузить его в SQL Server 2012.Конфликты записей в SQL Server

Я создал таблицу

CREATE TABLE Genres2 
(
MovieName varchar(255) NOT NULL, 
Year int NOT NULL, 
Genre varchar(255) NOT NULL 
PRIMARY KEY (MovieName, Year) 
); 

При загрузке его

BULK INSERT Genres3 
FROM 'c:\Users\genres6.tsv' 
WITH 
(
    FIELDTERMINATOR='\t', 
    ROWTERMINATOR='\n' 
); 

Я получаю ошибку

Дубликат значение ключа

Но блокнот ++ говорит, что в файле есть только одно такое значение.

Любые идеи, как их решить? Заранее спасибо.

+0

Вы определили '(MovieName, Year)' как первичный ключ, вы уверены, что искали эту комбинацию, а не 'MovieName' или' Year'? Что должно быть уникальным? –

+0

лучше всего иметь столбец INT в качестве основного ключа, рассмотрели ли вы использование столбца Identity для основного ключа? –

+0

просто из любопытства в вашем файле .tsv у вас есть имена столбцов в вашей первой строке ??? –

ответ

2

Простой поиск неисправностей здесь:

  1. Отключить или падение первичного ключа ограничивают и загрузки данных.

  2. Запустить запрос, чтобы найти повторяющиеся записи в предложенном ключевом столбце.

  3. Если дубликатов нет, добавьте ограничение для копирования в новую таблицу с таким ограничением.

+0

(... просто набрав, и вы избили меня до этого.) – whytheq

+0

@whytheq Это случилось со мной много раз. Я также добавил комментарий к топливу «обсуждение») – Stoleg

+0

Спасибо за совет. Он возвратил два значения: 8minutes, 2011 и 8Minutes, 2011. Разница заключается в том, что Capital Letter после 8. –

Смежные вопросы