Je dirais que vous avez deux options. La première consiste à gérer cela dans le langage de définition de données de votre table cible. Voir cet exemple de code écrit pour MS SQL Server.
CREATE TABLE #A (
Id INT NOT NULL IDENTITY(1,1) PRIMARY KEY
, Code VARCHAR(10) NOT NULL)
CREATE TABLE #B (
Code VARCHAR(10) NOT NULL)
INSERT INTO #B VALUES ('alpha')
INSERT INTO #B VALUES ('beta')
INSERT INTO #B VALUES ('gamma')
INSERT INTO #B VALUES ('delta')
INSERT INTO #A (Code)
SELECT Code
FROM #B
SELECT *
FROM #A
DROP TABLE #A
DROP TABLE #B
Si vous n'êtes pas autorisé à manipuler dans la table de LDD cible alors vous pouvez accomplir ce que vous devez être spécifier le chemin dans la table comme si vous le savez sera vide.
CREATE TABLE #A (
Id INT NOT NULL PRIMARY KEY
, Code VARCHAR(10) NOT NULL)
CREATE TABLE #B (
Code VARCHAR(10) NOT NULL)
INSERT INTO #B VALUES ('alpha')
INSERT INTO #B VALUES ('beta')
INSERT INTO #B VALUES ('gamma')
INSERT INTO #B VALUES ('delta')
INSERT INTO #A (Id, Code)
SELECT ROW_NUMBER() OVER (ORDER BY Code), Code
FROM #B
SELECT *
FROM #A
DROP TABLE #A
DROP TABLE #B
Je recommande vivement la première méthode. C'est beaucoup plus simple et vous n'avez pas à vous soucier de gérer l'auto-incrémentation dans le code.
Quel est le schéma de 'TestDataTable'? – Jon