Bonjour,

Je suis en train d'écrire une requête pour intégrer des fichiers csv dans une base SQL server 2000.

J'ai la table suivante avec une contrainte check :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CREATE TABLE [dbo].[TEST](
	[annee] [numeric](4, 0) NOT NULL,
	[mois] [numeric](1, 0) NOT NULL,
	[jour] [numeric](2, 0) NOT NULL,
	[code_edi] [numeric](13, 0) NOT NULL,
) ON [PRIMARY]
 
ALTER TABLE [dbo].[Integration_PP]  WITH CHECK ADD  CONSTRAINT [ck_annee] CHECK  (([annee]>=(2000) AND [annee]<=(2020)))
ALTER TABLE [dbo].[Integration_PP] CHECK CONSTRAINT [ck_annee]
J'ai la requête suivante d'insertion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
DELETE FROM test
 
DECLARE @sqlstmt varchar(500),
@errorfilename varchar(150),
@TodayDate as varchar(40),
@TodayHour as varchar(40),
@TodayMinu as varchar(40),
@TodaySeco as varchar(40)
 
SELECT @TodayDate = CONVERT(varchar(10), GETDATE(), 112)
SELECT @TodayHour = DATEPART(hh,GETDATE())
SELECT @TodayMinu = DATEPART(mi,GETDATE())
SELECT @TodaySeco = DATEPART(ss,GETDATE())
 
SET @errorfilename = 'c:\test\Error' + @TodayDate + '_' + @TodayHour + @TodayMinu + @TodaySeco + '.txt'
 
SET @sqlstmt = 'BULK
				INSERT test
				FROM ''c:\test\Fichier_test.csv''
				WITH
				(
					FIRSTROW = 2, 
					MAXERRORS = 5, 
					FIELDTERMINATOR = '';'',
					ROWTERMINATOR = ''\n'',
					FIRE_TRIGGERS,
					CODEPAGE = ''ACP'',
					ERRORFILE = ' + '''' +@errorfilename + '''' +')'
 
EXECUTE (@sqlstmt)
Les données sont insérées dans la base de donnée et sont même bien trop insérées! SQL ne me renvoie aucun message d'erreur pour les lignes ayant pour année par exemple 1900. Même chose si j'ajoute une contrainte sur d'autres colonnes.

Sauriez-vous d'où peut venir le problème?

Merci par avance.