Bonjour,
j'ai un programme VBS qui génère un fichier d'instructions pour SQL Server. Ce fichier va insérer x lignes dans une table.

J'ai mis en place une vérification comparant le nombre d'enregistrement avec le nombre que je suis censé avoir. En cas de difference, je déclanche un rollback.
Mais si j'insère une valeur décimale dans un champ de type int, cette valeur est arrondie (a mon insu)... Mes insertions sont donc valides (même nombre), sauf que mes données ont été modifiées...
Les options SET NUMERIC_ROUNDABORT ON et SET ARITHABORT ON placées en début de code sont censés empêcher l'insertion, mais il n'en n'est rien...

Connaîtriez vous une solution ?

Un exemple (utilisation d'un schema DUMMY)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE [DUMMY].[TAB_TEST](
	[CLE] [int] IDENTITY(1,1) NOT NULL,
	[VAL] [int] NULL);
GO
 
SET ANSI_WARNINGS ON;
SET NUMERIC_ROUNDABORT ON;
SET ARITHABORT ON;
GO
 
INSERT INTO [DUMMY].[TAB_TEST] (VAL) VALUES (12.5);
SELECT CLE, VAL FROM [DUMMY].[TAB_TEST] WHERE VAL=12;
DELETE FROM [DUMMY].[TAB_TEST] WHERE VAL=12;
En fait, j'aimerai que le INSERT n'ajoute rien...

Merci d'avance pour vos réponses,
Pouy.