Bonjour,
Je développe en ASP.NET et je fais une requête INSERT paramétrée avec ADO.NET.
Mais il y a une des valeurs que je souhaite récupérée soit par une sous requête, soit par une variable mais je n'y arrive pas.
Voila à peu près ce que ça donne :
ce qui ne fonctionne pas car apparamment seul les fonctions scalaires sont autorisées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO maTable ((SELECT MAX(valeur) FROM uneAutreTable), @param1, param2)
de même si je fais un
ça ne marche pas car @valeur est confondu avec mes @param1 et @param2 de ADO.NET au niveau de ma requête paramétrée. Il me dit alors que @valeur n'est pas renseignée (en effet dans mon code asp.net C#, je ne la déclare pas puisqu'elle est dans une variable SQL)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SET @valeur = SELECT MAX(valeur) FROM uneAutreTable; INSERT INTO maTable (@valeur, @param1, param2)
Si quelqu'un a une idée, je suis preneur.
Sinon, dans le pire des cas, j'utiliserai une transaction serializable entre mes lignes de C# pour récupérer dans un premier temps le SELECT MAX, puis dans un deuxieme temps faire mon insert avec ma valeur récupérée (ça me fera deux lots de requêtes au lieu d'un)
Partager