Импорт отдельных записей в SQL Server 2008 - PullRequest
1 голос
/ 23 февраля 2012

Я получаю ежедневный CSV с дубликатами записей в нем.Я попытался импортировать его, используя BULK INSERT, но мое ограничение первичного ключа выдает ошибку из-за дубликатов.

Чтобы исправить это, я думаю об импорте данных в новую таблицу без ограничения первичного ключаи затем используя следующий код:

INSERT INTO final_table(col1, col2, col3)
SELECT DISTINCT col1, col2, col3
FROM temporary_table

Это лучший способ сделать это?Или есть более простой способ сделать это в SQL Server 2008?

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Попробуйте это:

INSERT INTO final_table
SELECT DISTINCT csv.*
FROM OPENROWSET(BULK N'C:\Text1.csv', SINGLE_CLOB) AS csv
1 голос
/ 23 февраля 2012

Эта «новая» таблица называется промежуточной таблицей.У него должно быть очень мало ограничений ... т.е.ограничения.После загрузки вы чистите и загружаете в свой «финальный» стол.

Я думаю, что вы предлагаете сделать, это самое простое.Если вы не используете SSIS, и вы непреклонны в том, что не используете промежуточный стол.Я обычно люблю иметь промежуточную таблицу, чтобы видеть точную копию файла, если что-то пойдет не так.Помогает с устранением неполадок.

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