Bonjour,
Je travaille sous VS 2010 et SQL Serveur2008.
J'ai une table dans ma base de données nommée : "TAB_IND". Cette table contient des colonnes ID, Col1, Col2 et Col3. Initialement la valeur de Col3 est nulle.
- A l'aide d'un DataTable du côté Dot net(C sharp), je récupère toutes les données de TAB_IND pour lesquelles Col3 est nulle
- Col3 est calculée en fonction de Col1 et de Col2
- Les calculs qui permettent de renseigner col3 s'effectuent uniquement côté Dot net (Appel à plusieurs web service). Impossible de calculer Col3 côté SQL.
- A la fin des calculs, j'ai côté Dot net un DataTable contenant des centaines voire milliers de données (ID, Col1,Col2,Col3) avec Col3 renseignée.
Question:
Comment puis-je passer ce DataTable comme paramètre à une procédure stockée pour aller mettre Col3 de "TAB_IND" à jour?
J'ai un peu regardé sur le google, je pense que la possibilité d'utiliser un paramètre de type Table (possible sous SQL 2008) n'est pas indiquée dans mon cas (à moins que je n'ai pas bien compris la méthode!?!?).
Une autre idée serait peut-être:
- passer en paramètre la DataTable sous forme d'un varchar(max) (comment transformer le DataTable en varchar(max)?)
- utiliser 2 curseurs imbriqués: le premier lit la ligne et le second lit les valeurs de la ligne et les affecte dans une table temporaire (Quelle serait la syntaxe?)
- A l'aide d'une jointure de la TAB_IND sur la table temporaire, mettre Col3 à jour
Cette solution n'est-elle pas assez "lourde"? Sinon, comment la mettrait-on en place?
Pour toute question complémentaire, je suis à votre disposition.
Merci d'avance pour toute aide.
Maren
Partager