Ce que tu cherches à faire n'est pas possible. En arrière plan, lorsque la commande SQL est traitée, si la valeur d'un paramètre est un string, cette valeur sera automatiquement encadrée par des apostrophes. Donc ton DDL SQL obtenu serait de ce genre :
create table 'nom_table' (label varchar(20), categorie varchar(20), montant decimal)
Ce n'est pas du SQL valide...
Donc il faut se résoudre soit à concaténer, ce qui n'est clairement pas une bonne idée, puisque cela ouvre la porte à de potentielles injections de code SQL ; soit il faut prévoir plusieurs requêtes SQL (une par table, avec un switch pour choisir la bonne) ; soit, encore mieux, utiliser une procédure stockée, à qui tu passeras le nom de la table à créer en paramètre.
Je te conseille la dernière solution (procédure stockée).
Partager