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 :
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 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]
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.
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)
Sauriez-vous d'où peut venir le problème?
Merci par avance.
Partager