Ceci est votre requête tirée du commentaire. Vous devriez vraiment l'inclure dans la question texte, pas comme image.
INSERT INTO SalesActivity VALUES
('AC00001',
'05-12-2016',
'AG16170',
'C000001',
'P0001',
'S00002',
'1',
'200000.00',
'', -- valueEUR
'1.2220',
'20',
'100000.00',
'25-12-2016',
'30-12-2016',
'31-12-2016',
'A000001',
'PR00001');
Dans la définition de la table, nous pouvons voir que valueEUR
colonne est numérique. Vous passez une chaîne là. Pas seulement une chaîne, mais une chaîne qui ne peut pas être convertie en nombre. Une chaîne vide ''
ne peut pas être convertie en nombre.
Je devine, vous voulez insérer NULL
dans ce champ. Donc, vous devriez
- d'écrire
NULL
dans l'instruction INSERT
.
- En outre, vous devez supprimer toutes les guillemets autour des nombres afin que le serveur n'ait pas à convertir les chaînes en nombres. En outre, vous devez écrire vos dates au format
YYYY-MM-DD
. Sinon, un jour vous serez peut-être surpris de voir que le serveur l'a deviné de manière incorrecte et a échangé des mois et des jours.
- En outre, vous devez répertorier tous les noms de colonne dans l'instruction
INSERT
. Sinon, votre code va se casser lorsque vous ajoutez une nouvelle colonne à la table.
La requête devrait ressembler à ceci:
INSERT INTO dbo.SalesActivity
(Activity_ID,
[Date],
Quatation_Number,
Customer_ID,
Product_ID,
Status_ID,
Quantity,
valueGBR,
valueEUR,
Rate,
Commission,
weightedValue,
estDecisionDate,
currentEstCompletionDate,
originalEstCompletionDate,
Agent_ID,
Probability_ID)
VALUES
('AC00001',
'2016-12-05',
'AG16170',
'C000001',
'P0001',
'S00002',
1,
200000.00,
NULL,
1.2220,
20,
100000.00,
'2016-12-25',
'2016-12-30',
'2016-12-31',
'A000001',
'PR00001');
Les guillemets simples sont les chaînes littérales. Supprimez-les pour les données numériques. – jarlh
la QTY doit être sans guillemets et les autres données numériques aussi .... supprimer les virgules pour le séparateur de milliers – maSTAShuFu
Bien que les guillemets simples ne sont pas nécessaires pour les valeurs numériques, ils ne provoqueront pas d'erreur s'ils sont utilisés. Mais les virgules vont. –