Constraint check et Bulk insert
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:
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:
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.