Bonjour à tous et merci d'avancement pour le temps que vous accordez à mon problème,

(je précise avant tout que le problème est simplifié)

J'ai un fichier texte.CSV qui contient des lignes comme celle ci ->

1;BLABLA
2;TRUC
3;CHOSE

Je souhaite insérer ces lignes dans une table à deux champs :

l'un numérique l'autre alfa.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SET QUOTED_IDENTIFIER ON
GO
 
CREATE TABLE matable
(
	[id] [int] NOT NULL,
	[texte] [nvarchar](10) NULL,
	CONSTRAINT [PK] PRIMARY KEY CLUSTERED ([id] ASC)
) ON [PRIMARY]

Pour cela j'utilise BULK INSERT :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
BULK INSERT matable
FROM 'c:\texte.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n',
FIRSTROW = 1
)
GO
Avec l'option FIRSTROW = 2 la première ligne ne s'insère pas (normal) et je n'ai pas d'erreur.

Avec FIRSTROW = 1 la première ligne ne s'insère pas et j'obtiens l'erreur suivante :

Msg 4864, Level 16, State 1, Line 2
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (id).
Ma question : comment j'insère la première ligne ?

Pouvez vous m'aider ?