I am setting a variable, and then I want to use the USE command to change the database. Unfortunately USE doesn’t evaluate the variable.
SET @con="testDB";
Query OK, 0 rows affected (0.00 sec)
select @con;
+--------+
| @con |
+--------+
| testDB |
+--------+
1 row in set (0.00 sec)
use @con;
ERROR 1049 (42000): Unknown database '@con'
So the value of the variable is not evaluated when I try to connect. Any ideas?
I have found my own solution, so I am going to answer my own question, in case anybody is interested.
@outis you are right, it’s not possible to use a variable with the command
USE.However, due to the fact that I want to create a table in a database specified at runtime, my solution would be to use dynamic SQL:
So basically this solution builds up the statement, prepares it and executes it.
@schema parameter can even be past down to the script. This way I dynamically build the create statement.