Проблема генерации первичного ключа с помощью служб SSIS - PullRequest
0 голосов
/ 22 сентября 2009

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

Выберите Max (id) + 1 от клиента

Проблема в том, что с момента, когда моя задача скрипта генерирует PK, до момента, когда я вставляю, есть 10 строк, которые превращаются в мою задачу скрипта, поэтому я получаю 10 раз один и тот же идентификатор и приложение аварийно завершает работу !!

Как это могло быть в SSIS ????

Ответы [ 2 ]

0 голосов
/ 22 сентября 2009

создать таблицу TempWork с точно такой же структурой, что и в конечной таблице назначения, за исключением того, что сделать PK IDENTITY (n, 1), где «n» - это следующее значение на основе PK конечной таблицы назначения. Используйте SSIS для вставки в эту таблицу TempWork, и идентификаторы будут созданы для вас. когда все это будет сделано, сделайте это:

INSERT INTO FinalTable (PK,col1, col2,...) SELECT PK, col1, col2... from TempWork

, затем DROP TABLE TempWork

0 голосов
/ 22 сентября 2009

Я получил простой ответ: я просто помещаю свои записи, которые я хотел вставить, в DataSet без какого-либо идентификатора PK и вне моего потока данных. Я выполняю цикл foreach, который получает запись foreach для нового идентификатора PK и вставляет его одну за другой.

СДЕЛАНО!

...